How to move Misskey database between machines
Fedora での作業記録
手順
移行元のマシンで Misskey を停止
これ以降新しいデータが書き込まれないようにするため。
sudo systemctl stop misskey
移行元のマシンでデータベースを dump
pg_dump -f filename -Fc -Z 9 -d username -U dbname -v
pg_dump [connection-option...] [option...] [dbname]
-f
出力先のファイル名
-Z
圧縮レベル 9(最高)でOK
-F
フォーマット -Fc
でOK
-U
Postgres ユーザー名
-d
データベースの名前
-v
進捗が見れる
ドキュメント: https://www.postgresql.jp/document/15/html/app-pgdump.html
出力先は現在いる階層に出力されるので、ユーザーディレクトリ(/home/userid)のトップにいる状態でやるといいかも。
dump が終わったらローカルに落とす
/etc/nginx/conf.d から misskey.conf をローカルに落とす
適当に
新しいサーバーの準備をする
Misskey のバージョンは同じで。
現在 Cloudflare を利用していても、以前 Let's Encrypt を利用していた場合は一度 Let's Encrypt の設定を行っておいた方がいい可能性がある。
ローカルに落とした移行元の misskey.conf をユーザーディレクトリの適当な場所にアップロードし、 /etc/nginx/conf.d の場所にコピー
http2 は非推奨になったため、テストで怒られた場合は削除して大丈夫。
/home/userid に落としたデータベースを上げる
適当に
データベースをリストア
pg_restore -d username -U dbname -v filename
pg_restore [connection-option...] [option...] [filename]
-d
リストア先のデータベースの名前
-U
Postgres ユーザー名
-v
進捗が見れる
filename は現在のディレクトリを参照するため、ユーザーディレクトリのトップに移動した状態で行う。(データベースを他のディレクトリにアップした場合はそこでやる。)
ドキュメント: https://www.postgresql.jp/document/15/html/app-pgrestore.html
Misskey ビルド、起動
データベースのイニシャライズ、マイグレーションは不要です。
終わり
やらなくていいこと: ServiceWorker の設定