@Falco さん、ありがとうございます!完全にスムーズに動作しました ![]()
新しいサーバーに移行しましたが、同じサーバーに残っていたとしても問題なかったようです。
後で他の誰かが参照したい場合に備えて、より詳細な手順を以下に記します(私の S3 設定は、こちら に指定されている通り app.yml ファイル内にあり、管理者設定でカスタマイズしたものは何もありませんでした):
-
ソースサイトにおいて、ロールバックでない場合は「メール送信の無効化」を有効にし(必須ではない可能性あり)、読み取り専用モードをオンにします(移行完了後に新しいインスタンスでこれらを元に戻すことを忘れないでください)。バックアップを作成し、完了したら古いインスタンスも停止することを検討してください(./launcher stop app)。ロールバックの有無にかかわらず、DNS の A レコードを更新して新しいサーバーの IP を指すようにします。ダウンタイムを最小限に抑えるために、よりエレガントな方法や順序で行うこともできますが、私のケースではダウンタイムは問題になりませんでした(ロールバックであり、まだフォーラムは公開していません)。
-
新しいサーバーに Discourse をインストールし、S3 設定を含む app.yml のすべてのカスタム設定を移行します。Discourse のバージョンは同じか、できるだけ近いものにしてください。
-
以下の 2 つのレコードをコメントアウトします(app.yml の他の S3 設定はそのままで構いません):
DISCOURSE_S3_BACKUP_BUCKET: BucketName
DISCOURSE_BACKUP_LOCATION: s3 -
S3 または S3 互換サービスから必要なバックアップを手動でダウンロードします。
-
/var/discourse/shared/standalone/backups に移動し、‘default’ という名前の新しいフォルダを作成します(存在しない場合、新規インストールでは作成されません)。その後、backups ディレクトリ内で以下を実行します(これは、このフォルダのパーミッションを、Discourse がローカルバックアップを作成した場合の通常の設定に合わせるためのものです。必須かどうかはわかりません):
chown -R 1000:www-data default -
SFTP クライアントを使用してバックアップを backups/default フォルダにアップロードします。バックアップファイルの名前を変更しないでください。
-
アプリを再構築します:
cd /var/discourse
./launcher rebuild app -
アプリに入り、バックアップを有効にして復元します(BackupFileName.tar.gz をリネーム):
./launcher enter app
discourse enable_restore
discourse restore BackupFileName.tar.gz
-
完了したら、ステップ 2 の app.yml から 2 つの S3 バックアップファイル行のコメントアウトを解除し、アプリを再構築します。
-
ローカルの backups/default フォルダと含まれるバックアップ(/var/discourse/shared/standalone/backups)を削除できます。
参考: