技術書典16でChatGPT本を出します!(ここをクリック)

Calckey・Firefishのデータベースをリストアする

こんにちは、相戸ゆづなです!

Firefishアップデート・鯖移転を計画中のため、データベースリストアの方法を調べてました。

とりあえず自分でやる時のために、手順を整理してメモを残しておきます。

多分これでいけるはず、もし間違ってたらごめんなさい。(行けなかったら手順メモを修正する予定)

データベースバックアップについて
前回の記事にバックアップの方法を記載しました。この記事ではデータベースをバックアップをしたことを前提に書いてますので、もしバックアップの方法がわからない場合は先に下記の記事をご覧ください。

Misskeyについて
Misskey専用のフォルダー・ユーザー名・起動コマンドに修正すればいけると思います。
詳しい検証はしていないので、行う場合は自己責任でお願います。

目次

2023/09/09 追記

この手順でデータベースを復旧させたことを確認しました。

ついでに一部誤字を見つけたので修正。

大まかな流れ

  1. Calckeyをインストールする、この時postgreSQLにログインするユーザーとデータベース名をメモしておく
  2. インストール後、Calckeyのプロセスをいったん止める
  3. postgresユーザーに切り替えて、所有者がリストア前のユーザーになってるか確認
  4. 1で作成したデータベースを削除する
  5. 同じユーザー名とデータベース名で作成する
  6. データベースをアップロードする
  7. Calckeyユーザーでログイン、リストアする
  8. 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を再起動してデータを確認してください。

参照サイト

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次