# How to upgrade taiyme/misskey to v20XX base from v12 base :::warning この手順は現在執筆中です ::: ## Dockerを使用している場合 ### Misskeyの停止 Misskeyを一時的に停止します。 ```sh docker compose down ``` ### DBのバックアップ DBのデータが保存されているファイルをすべてコピーしておきます。 この操作のあとにコピー元とコピー先を見比べて適切にコピーされていることを確認しておきましょう。 ```sh sudo cp -r ./db ./db-backup ``` DBのみを起動します。 ```sh docker compose up db -d ``` DBのデータをダンプします。 ここで`[DB接続に使用するユーザ名]`の部分は自身の環境に合わせて変更してください。 `.config/docker.env`の中の`POSTGRES_USER=[DB接続に使用するユーザ名]`の項目に合わせてください。 この操作のあとにカレントディレクトリに`backup.sql`が作成されてあり、適切にダンプされていることを確認してください。 ```sh docker compose exec db pg_dumpall -U [DB接続に使用するユーザ名] > backup.sql ``` 例) ```sh docker compose exec db pg_dumpall -U example-misskey-user > backup.sql ``` ダンプが完了したらDBを停止します。 ```sh docker compose down ``` DBのデータが保存されているディレクトリを削除します ```sh sudo rm -rf ./db ``` ### `./files`の権限変更 `./files`の権限を変更します・ ```sh sudo chown -hR 991:991 ./files ``` ### Misskeyの更新 新しいバージョンへ切り替えます。 `[version]`に切り替えたいバージョンを入力してください。 バージョン一覧は[リリース一覧](https://github.com/taiyme/misskey/releases)から確認できます。 ```sh git checkout [version] git submodule update --init ``` `docker-compose.yml`が削除されるので作成します。 ```sh cp docker-compose_example.yml docker-compose.yml ``` ### DBのデータ移行 DBのみ起動します ```sh docker compose up db -d ``` ダンプしたデータを流し込みます。 ここで`[DB接続に使用するユーザ名]`および`[データベース名]`の部分は自身の環境に合わせて変更してください。 それぞれ`.config/docker.env`の中の`POSTGRES_USER=[DB接続に使用するユーザ名]`と`POSTGRES_DB=[データベース名]`の項目に合わせてください。 ```sh cat backup.sql | docker compose exec -T db psql -U [DB接続に使用するユーザ名] -d [データベース名] ``` 例) ```sh cat backup.sql | docker compose exec -T db psql -U example-misskey-user -d misskey ``` DBのバージョンアップの影響でDBのユーザのパスワードハッシュ形式が変更されたので再設定を行ないます。 ここで`[DB接続に使用するユーザ名]`および`[DB接続に使用するユーザのパスワード]`、`[データベース名]`の部分は自身の環境に合わせて変更してください。 それぞれ`.config/docker.env`の中の`POSTGRES_USER=[DB接続に使用するユーザ名]`と`POSTGRES_PASSWORD=[DB接続に使用するユーザのパスワード]`、`POSTGRES_DB=[データベース名]`の項目に合わせてください。 ```sh docker compose exec db psql -U [DB接続に使用するユーザ名] -d [データベース名] -c "alter role \"[DB接続に使用するユーザ名]\" with password '[DB接続に使用するユーザのパスワード]';" ``` 例) ```sh docker compose exec db psql -U example-misskey-user -d misskey -c "alter role \"example-misskey-user\" with password 'example-misskey-pass';" ``` ### Misskeyの起動 Misskeyを起動します ```sh docker compose up -d ``` アイコンとバナーのURLが必要になっているので設定します。 ```sh docker compose run --rm web sh -c "cd packages/backend && curl -kOL https://gist.githubusercontent.com/cffnpwr/8f3c07b711b55f45abe7ddeac4f233ab/raw/9d99ee5b2d90a47423e5dbc2b929cb03acded159/migratev12tov2023.js && node ./migratev12tov2023.js" ``` ブラウザからMisskeyにアクセスして起動が確認できれば成功です。 お疲れ様でした。 ## Dockerを使用していない場合