こんにちは、相戸ゆづなです!
Firefishアップデート・鯖移転を計画中のため、データベースリストアの方法を調べてました。
とりあえず自分でやる時のために、手順を整理してメモを残しておきます。
多分これでいけるはず、もし間違ってたらごめんなさい。(行けなかったら手順メモを修正する予定)

2023/09/09 追記
この手順でデータベースを復旧させたことを確認しました。
ついでに一部誤字を見つけたので修正。
大まかな流れ
- Calckeyをインストールする、この時postgreSQLにログインするユーザーとデータベース名をメモしておく
- インストール後、Calckeyのプロセスをいったん止める
- postgresユーザーに切り替えて、所有者がリストア前のユーザーになってるか確認
- 1で作成したデータベースを削除する
- 同じユーザー名とデータベース名で作成する
- データベースをアップロードする
- Calckeyユーザーでログイン、リストアする
- Calckeyを起動する
細かい手順
1.Calckeyのインストール
まず従来の方法でCalckeyをインストールします。
その際に注意したいのが、PostgreSQLに登録する情報をリストア前のユーザー名とデータベース名と同じにする点。
リストア前のデータベースと違う情報にすると、データをインポートできなくなるので気を付けてください。
もしリストア前の情報がわからなかったら……
リストア前サーバーがある場合、rootもしくはcalckeyユーザーでログインして下記のコマンドでみることができます。
$ cat /home/calckey/calckey/.config/default.yml
2.Clackeyのプロセスを止める
$ systemctl stop (ドメイン名)
上記のコマンドプロセスを落とせるので、作業の前に必ず落としましょう。
3.postgresユーザーに切り替えて、データベース名と所有者を確認(省略可)
Tera Tarmでrootユーザーからpostgresユーザーに切り替えます。
$ sudo su - postgres
切り替えたあと、下記のコマンドで念のためデータベース名とユーザー名を確認します。
$ psql -l
4.1で作成したデータベースを削除する
下記のコマンドでデータベースに入ります。
$ psql
データベースにログイン後、さきほど作ったデータベースを削除します。
$ drop database (データベース名);
5. 同じユーザー名とデータベース名でデータベースを作成する
$ CREATE DATABASE (データベース名) OWNER (ユーザー名);
作り終わったらデータベースユーザーからログアウトし、rootユーザーに戻ります。
6.データベースをアップロードする
FTPソフトなどでバックアップしたデータベースをアップロードします。
セキュリティrootログインをつぶしてる場合
rootログインをつぶしている場合、アップロードできるディレクトリが限定されています。
対処法としては、FTPにログインできるユーザーの/home/
ディレクトリにいったんアップロードして、Tera Tarmでrootユーザーでログイン→ファイルを移動させます。
$ mv /home/(ファイルを保管したユーザー名)/(ファイル名) /home/calckey/
7.Calckeyユーザーでログイン、リストアする
calckeyユーザーでログインし、下記のコマンドを入力します。
$ psql -d (リストア先の新データベース名) < (バックアップした旧データベース名)
もしリストアできたか不安な場合、root権限に戻ったあとに下記のコマンドを入力して情報を確認します。
$ sudo su - postgres
$ psql \c (データベース名)
$ \dt
この時Calckeyデータベース一覧が出てきてたらリストア成功してるはず。(未確認)
8.再起動する
NginxとCalckeyを再起動してデータを確認してください。