リストア中:「例外:より新しいスキーマバージョンをリストアしようとしています。最初にマイグレーションする必要があります!」

Discourseサーバーを最近セットアップしました。trydiscourse.comでトライアルをしばらく使用した後です。セットアップ時に、trydiscourse.comからトライアルのデータのバックアップをダウンロードし、それをセルフホストのDiscourseにリストアできました。

約1週間後、トライアルが終了する際に、trydiscourse.comから別のバックアップをダウンロードしてリストアしようとしました。しかし、今回はリストアが失敗しました。ログは以下の通りです。

[2022-03-05 01:31:08] [STARTED]

[2022-03-05 01:31:08] 'Joaquin' has started the restore!

[2022-03-05 01:31:08] Marking restore as running...

[2022-03-05 01:31:08] Making sure /var/www/discourse/tmp/restores/default/2022-03-05-013108 exists...

[2022-03-05 01:31:08] Copying archive to tmp directory...

[2022-03-05 01:31:08] Unzipping archive, this may take a while...

[2022-03-05 01:31:08] Extracting dump file...

[2022-03-05 01:31:08] Validating metadata...

[2022-03-05 01:31:08]   Current version: 20220220234155

[2022-03-05 01:31:08]   Restored version: 20220223161000

[2022-03-05 01:31:08] EXCEPTION: You're trying to restore a more recent version of the schema. You should migrate first!

[2022-03-05 01:31:08] /var/www/discourse/lib/backup_restore/meta_data_handler.rb:31:in `validate'

/var/www/discourse/lib/backup_restore/restorer.rb:112:in `validate_backup_metadata'

/var/www/discourse/lib/backup_restore/restorer.rb:43: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-03-05 01:31:08] Trying to rollback...

[2022-03-05 01:31:08] There was no need to rollback

[2022-03-05 01:31:08] Cleaning stuff up...

[2022-03-05 01:31:08] Removing tmp '/var/www/discourse/tmp/restores/default/2022-03-05-013108' directory...

[2022-03-05 01:31:08] Marking restore as finished...

[2022-03-05 01:31:08] Notifying 'Joaquin' of the end of the restore...

例外メッセージで「migrate first!」と示されている「スキーマ」とは、Discourseが使用するデータベースに関連するものだと、これまでの調査で把握しました。

Discourse Metaを調べましたが、この件について言及している人はいませんでした。Discourseを最新バージョンにアップデートしてから再度リストアを試みましたが、結果は同じでした。Discourseのファイルを調べて、役立ちそうなツールがないか探しましたが、有望そうなものは見つかりませんでした。

現時点での私の推測は、セルフホストのDiscourseをセットアップしてから1週間の間に、trydiscourse.comのトライアルフォーラムで何かが変更されたのではないかということです。

私の質問は以下の通りです。

  1. エラーで示唆されているマイグレーションを実行するにはどうすればよいですか?
  2. このリストア失敗の正確な原因は何ですか?これは(トライアルからセルフホストへの移行時以外に)通常発生する可能性のあることですか?

この件について、ご協力いただけると幸いです!:slightly_smiling_face:

「いいね!」 1

トライアルにインストールされていたプラグインと同じプラグインを少なくともすべて使用して、セルフホストインスタンスを再構築するようにしてください。

または、冒険心がある場合は、バックアップファイルの名前を変更し、ファイル名で 2022022316100020220220234155 に置き換えることもできます。

「いいね!」 6

数日前に私も同じ問題に遭遇しました。検索機能ですぐに解決策が見つかりました。

(ちなみに @RGJ と同じです)。

「いいね!」 3

返信ありがとうございます!とても参考になりました :heart:

移行の方法についてはまだ気になっていますが、必要ないかもしれないとのことですね。

「いいね!」 2