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

Firefishのデータベースを別のサーバーに移した時の話

「サーバーを移転させたい」そう思って早1か月。

2023/09/09にようやくサーバー移転をすることができたので、手順と躓いたところをメモしておきます。

目次

前提

移転環境

  • さくらVPS
  • S3(メディア)

Firefishの簡易インストールスクリプト(mainブランチ)を使ってインストールしました。

結論・手順

  1. DNSを新サーバーに向ける
  2. 旧サーバーのFirefishを停止させる(サーバーをストップさせない)
  3. 旧サーバーのデータベースをDumpする
  4. 新サーバーでFirefishをインストールする
  5. 新サーバーに旧サーバーデータベースを入れる
  6. 新サーバーを起動させる

大まかにいうとこんな感じ。

Firefishインストール時にSSL証明書を取得する関係上、先にDNSを新サーバーに繋げました。

管理者アカウント情報やオブジェクトストレージ・カスタム絵文字設定などは、データベースをコピーした時点で引き継がれます。

なので大まかな手順は「旧サーバー停止・バックアップ→Firefishインストール→新サーバーにデータベースを移す」の3ステップで済みます。

躓いたところ

DNSの設定が新サーバー側に反映されなかった

数時間待ってもDNS設定が反映されなかったことがありました。

原因は実験用ドメイン側でDNSを設定していたことでした。

DNS設定が重複してたら、そら反映されませんわ……。

データベースが上手く反映されなかった

タイムラインやユーザー情報が上手く反映されなかった

原因はFirefish側と設定がかみ合ってなかった?

Developブランチでインストールしたか、もしくは旧サーバーのFirefishを停止しなかった点が怪しい所。

多分前者は違う可能性が高い。(そうじゃないと他サーバーのFirefishで不都合報告が出るはず)

一部ユーザーがログインできない

鯖移動直前まで使ってたアカウントでログインできなくなった問題。

一方で、しばらく休眠していたアカウントは無事にログインできたので、データベースの問題ではなかったです。

旧サーバーのFirefishを停止させていなかったのが原因でした。

systemctl (ドメイン名)で停止したらいけました。

最後に

こうしてみてみると、凡ミスが結構多いですね……。

本番環境に移す際はテスト環境をまっさらにする・必ずシステムを落とすように心がけたいです。

参考記事

主に自分の過去記事を参照しました。

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