新しいホストに復元

新しいホストをセットアップして「ステージング」環境を構築しました。バージョンも同じはずの Discourse インストールを再作成しました。実行中のバージョンは 2.8.2 です。

最初のコメントですが、バージョン 2.8.2 時点でバックアップサイズが 282MB から約 90MB に減少しました。理由は不明ですが、活用できるインテリジェンスが追加されているので、これを利用します。

フォーラムから最新のアーカイブをダウンロードし、新しいステージング環境のローカルストレージにアップロードしました。

リストアは以下の理由で失敗します。

[2022-02-27 19:41:18] ALTER TABLE
[2022-02-27 19:41:18] ALTER TABLE
[2022-02-27 19:41:18] データベースを移行中...
[2022-02-27 19:43:00]
[2022-02-27 19:43:00] データベースに再接続中...
[2022-02-27 19:43:00] サイト設定をリロード中...
[2022-02-27 19:43:00] 非スタッフユーザー向けの送信メールを無効化中...
[2022-02-27 19:43:02] 読み取り専用モードを無効化中...
[2022-02-27 19:43:02] カテゴリキャッシュをクリア中...
[2022-02-27 19:43:02] 翻訳をリロード中...
[2022-02-27 19:43:02] アップロードを再マッピング中...
[2022-02-27 19:43:02] 'https://forum.geekbeacon.org' を 'https://forum-staging.geekbeacon.org' に再マッピング中
[2022-02-27 19:43:08] アップロードをリストア中。これには時間がかかる場合があります...
[2022-02-27 19:43:36] 例外: 8 件の投稿が新しい S3 アップロード URL に再マッピングされていません。S3 移行がデータベース 'default' で失敗しました。
[2022-02-27 19:43:36] /var/www/discourse/lib/file_store/to_s3_migration.rb:132:in `raise_or_log'
/var/www/discourse/lib/file_store/to_s3_migration.rb:87:in `migration_successful?'
/var/www/discourse/lib/file_store/to_s3_migration.rb:373:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:66:in `migrate'
/var/www/discourse/lib/file_store/s3_store.rb:317:in `copy_from'
/var/www/discourse/lib/backup_restore/uploads_restorer.rb:62:in `restore_uploads'
/var/www/discourse/lib/backup_restore/uploads_restorer.rb:44:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:61:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:23:in `restore'
/var/www/discourse/script/spawn_backup_restore.rb:36:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2022-02-27 19:43:36] ロールバックを試行中...
[2022-02-27 19:43:36] ロールバック中...
[2022-02-27 19:43:36] クリーンアップ中...
[2022-02-27 19:43:36] discourse_functions スキーマから関数を削除中...
[2022-02-27 19:43:36] tmp '/var/www/discourse/tmp/restores/default/2022-02-27-194051' ディレクトリを削除中...
[2022-02-27 19:43:36] サイドキックのポーズ解除中...
[2022-02-27 19:43:36] リストアを完了としてマーク中...
[2022-02-27 19:43:36] リストア終了を 'csgeek' に通知中...

「いいね!」 1

これがあなたの問題です。同じS3バケットを使用し、同じバケットを使用しますか?「バックアップでS3をダウンロードする」のような名前の非表示設定がオンになっていることを確認してください。設定名については、ソースを検索または確認する必要があります。

または、本番サイトの他のアップロードがS3上にあることを確認する必要があるかもしれません。

「いいね!」 1

S3が設定されていません。古いサーバーには、有効なS3の場所にマッピングされていない古いデータがあるのかもしれません。

古いサーバーに戻ると、2つのバケットが設定されています。1つはバックアップ用、もう1つはメディア用です。ガイドに従ってAWS S3とCDNを設定しました。

rake uploads:migrate_to_s3 を実行したところ失敗しました。その後 posts:rebake を実行したところ、エラーの数は減りましたが、まだ失敗しています。

S3への移行は現在元に戻せません。
[CTRL+c] でキャンセル、[ENTER] で続行

'default' のアップロードをS3に移行中...
ファイルをS3にアップロード中...
 - ローカルファイルをリスト表示
 => 208 ファイル
 - S3ファイルをリスト表示
. => 978 ファイル
 - ファイルをS3に同期
................................................................................................................................................................................................................
データベース内のURLを更新中...
古い最適化画像を削除中...
ライトボックスを含むすべての投稿にリベイクのフラグを立てています...
15 件の投稿にリベイクのフラグが立てられました
rake aborted!
FileStore::ToS3MigrationError: 1 件の投稿が新しいS3アップロードURLにリマップされていません。'default' のDBのS3移行に失敗しました。
/var/www/discourse/lib/file_store/to_s3_migration.rb:132:in `raise_or_log'
/var/www/discourse/lib/file_store/to_s3_migration.rb:87:in `migration_successful?'
/var/www/discourse/lib/file_store/to_s3_migration.rb:373:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:66:in `migrate'
/var/www/discourse/lib/tasks/uploads.rake:123:in `migrate_to_s3'
/var/www/discourse/lib/tasks/uploads.rake:102:in `block in migrate_to_s3_all_sites'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:90:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:100:in `migrate_to_s3_all_sites'
/var/www/discourse/lib/tasks/uploads.rake:96:in `block in <main>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => uploads:migrate_to_s3
(フルトレースを表示するには、タスクを --trace オプション付きで実行してください)

migrate_to_s3 を詳細モードで実行して、原因となっている投稿を特定する方法はありますか?