「hotlinked_media_status」が既に存在するため、復元に失敗しました

Upgrade fails on duplicate key error (“index post hotlinked media on post id and url md5”) からの議論を続けます。

現在、本番サイトからステージングサイトに復元しようとしていますが、以下のエラーが発生しています。

ERROR:  type "hotlinked_media_status" already exists
EXCEPTION: psql failed: ERROR:  type "hotlinked_media_status" already exists

@david 以前修正した際に、見落としたケースはありますか(当時、マイグレーションで失敗していたと思いますが、今回は復元です)。

「いいね!」 1

サイトはどのように復元していますか?UI経由ですか?discourse CLIですか?直接psqlですか?

コマンドラインから最新のバックアップを復元します(今日はこの sed のトリックを見つけましたが、コピー&ペーストした場合と同じでした)。

$(discourse restore |sed -n '3p')

そして、バックアップはS3にあり、少し古いバージョンから復元されました。

Discourse 3.4.0.beta1-dev - https://github.com/discourse/discourse version a3d61ba1c43931eb688f9b2b85c207b5bab02b8c

から

Discourse 3.4.0.beta2-dev - https://github.com/discourse/discourse version f405c021ebd36d5f11499159bd2b54098356a8f9"

他の環境でも同様の問題が発生するか再現できますか?

2年以上経過してから、他に報告もない中でこの問題が発生しているのは非常に驚きです :thinking:

できないかもしれません。同じバックアップを開発ボックスに正常に復元できました。

これを引き起こした可能性のあることや、修正できることについて何か考えはありますか? データベースを削除したところ、復元できるようになりました。データベースを削除することが実際の解決策でしたが、(原因と思われる)問題に対する解決策を得る資格はありません。

このトピックは、最後の返信から30日後に自動的にクローズされました。新しい返信は許可されていません。

得られた非常に貴重な洞察は、hotlinked_media_status がリストアファイルで最初に発生することです。既存のデータベースでこれを手動で削除すると、次のステートメント(CREATE TABLE public.admin_notices)でリストアが失敗します。

したがって、これは特定の型定義の問題ではありません。これは単に、より大きな問題の兆候であると考えられます。BackupRestore.move_tables_between_schemas(MAIN_SCHEMA, BACKUP_SCHEMA) が期待どおりに機能しないのではないかと疑っています。

「いいね!」 1