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のトライアルフォーラムで何かが変更されたのではないかということです。
私の質問は以下の通りです。
- エラーで示唆されているマイグレーションを実行するにはどうすればよいですか?
- このリストア失敗の正確な原因は何ですか?これは(トライアルからセルフホストへの移行時以外に)通常発生する可能性のあることですか?
この件について、ご協力いただけると幸いです!![]()