misskeyとかFirefishとかIceshrimpとかのサーバーを建てていてアップグレードとか移行に失敗したとき予めpostgresqlをバックアップする方法とそれをリストアする方法です。
バックアップ
Postgresqlの中身を全部backup.sqlというテキストファイルに出力します。
sudo -u postgres pg_dumpall > backup.sql
リストア
まず動かしているFirefishとかを止めます firefish.serviceの部分は
動かしているソフトウェアによって変わります。
sudo systemctl stop firefish.service
データベースの名前はmisskeyとかCalckeyの時にインストールしたFirefishなんか場合はmk1になっていますが、Firefishの場合はfiefish_dbになっていたりIceshrimpの場合はiceshrimpだったりSharkeyの場合はsharkeyだったりそのソフトウェアの名前になってたり
するのでいっぺんsudo -u postgres psql
でpostgresqlにログインして\l
でデータベース一覧を確認してみてください。使っているソフトウェアの名前のデータベースがあったら多分それです。
確認出来たら\q
でpostgresqlから抜けます。
元あるデータベースを削除(mk1の部分は上記に読み替え)
sudo -u postgres dropdb mk1
空のデータベースを作成(mk1の部分は上記に読み替え)
sudo -u postgres createdb mk1
データベースのリストア(先ほどバックアップしたのと同じユーザーのホームディレクトリに置いてあるものとします)
sudo -u postgres psql -f ./backup.sql
終わったらFirefishとかを再起動します
sudo systemctl start firefish.service