このガイドでは、Discourse の Web UI を使用せずに、コマンドラインから Discourse のバックアップを復元する方法を説明します。
必要なユーザーレベル: 管理者
コンソールアクセスが必要です
ここでは、Discourse の Web UI を起動することなく、コマンドラインから Discourse のバックアップを復元する方法を説明します。これは、サーバーを移行する際に便利です。
前提条件
始める前に、次の手順を完了していることを確認してください。
- ソースの Discourse インスタンスから最新のバックアップファイルをダウンロードします。
./discourse-setupを実行するか、既存のapp.ymlをコピーして、宛先の Discourse インスタンスをブートストラップします。- 宛先の Discourse インスタンスが最新バージョンであることを確認します。必要に応じて更新します。
バックアップの転送
- 宛先サーバーに SSH 接続するか、そこにバックアップフォルダーを作成します。
mkdir -p /var/discourse/shared/standalone/backups/default
- バックアップファイルを宛先サーバーにアップロードします。
scp /path/to/backup/backup.tar.gz root@192.168.1.1:/var/discourse/shared/standalone/backups/default
パス、ファイル名、サーバー名を、使用しているものに置き換えてください。ただし、バックアップファイルは次の場所に配置する必要があります。
/var/discourse/shared/standalone/backups/default
Google Drive、Dropbox、OneDrive などの一般的な Web ストレージ サイトから Discourse のバックアップファイルをアップロードおよびダウンロードすることもできます。好みの Web ストレージプロバイダーに基づいて、特定のコマンドライン手順を確認する必要があります。
バックアップのファイル名を変更しないでください! Discourse はバックアップファイル名をメタデータとして扱うため、ファイル名を変更すると復元が機能しなくなります。元のファイル名を維持してください。
/path/to/backup/discourse-xyz.tar.gz をバックアップファイルのローカルパスに置き換え、\u003cserver_ip_address\u003e を宛先サーバーの IP アドレスに置き換えます。
Nginx をリバースプロキシとして使用している 場合は、すべてのバックアップパスがコンテナによって読み取れ、Nginx が
.sockファイルを読み取れることを確認してください。
バックアップの復元
- 宛先サーバーにアクセスし、Discourse フォルダーに移動します。
cd /var/discourse
- Discourse Docker アプリコンテナに入ります。
./launcher enter app
- 復元機能を有効にします。
discourse enable_restore
- バックアップファイルを復元します。
discourse restore sitename-2019-02-03-042252-v20190130013015.tar.gz
ヒント: ファイル名を指定せずに
discourse restoreを実行すると、利用可能なすべてのバックアップファイルが一覧表示されます。
サイトの
backup_location設定が S3 を使用するように構成されているが、バックアップファイルをローカルファイルシステムに手動でアップロードした場合は、--location localを指定する必要があります。discourse restore --location local sitename-2019-02-03-042252-v20190130013015.tar.gz同様に、ダウンロードせずに S3 バックアップから直接復元するには、
--location s3を使用します。
- Discourse Docker アプリコンテナを終了します。
exit
リビルド
バックアップを復元した後、すべての設定と構成が正しく適用されていることを確認するために、宛先インスタンスをリビルドすることを選択できます。
ここで、
/var/discourse/containers/app.ymlを完全な HTTPS、追加のプラグイン、または CDN 構成で更新する良い機会です。両方のインスタンスのapp.yml構成を比較して確認してください!
cd /var/discourse
./launcher rebuild app
Eメールの有効化
バックアップが復元されると、スタッフ以外のユーザーの送信メールが無効になります。テストサーバー、新しいサーバー、または何らかの理由でバックアップを復元したばかりのサーバーがユーザーにメールを送信し始めることは望ましくありません。disable_emails サイト設定を「no」に変更して、メールを再度有効にします。
これで完了です。Discourse サーバーは正常に復元されました。