2.9.0.beta2 から 2.9.0.beta4 へのアップグレード中に、PG::DuplicateColumn: ERROR: column "bookmarkable_id" of relation "bookmarks" already exists というエラーメッセージが表示されて失敗しました。Recovering from failed/partially applied upgrade のアドバイスに従って、再びオンラインに戻ることができました。この問題は、(Docker 化された) マルチサイトのインストールに特有のものと思われるため、新しいトピックを開始します。
問題は、multisite:migrate が、以前のマイグレーションの一部として既に実行されたマイグレーションを再度実行しようとしたことにあるようです。結果として PG::DuplicateColumn: ERROR: column "bookmarkable_id" of relation "bookmarks" already exists が発生しました。エラーメッセージに基づくと、これはポリモーフィックなブックマーク機能、DEV: Re-add polymorphic bookmark columns by martin-brennan · Pull Request #16261 · discourse/discourse · GitHub (ping @martin?) に関連している可能性があります。
問題に遭遇した後、私の応急処置は次のとおりでした。
- 設定ファイル
containers/web_only.ymlの- exec: cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrateという行をコメントアウトしました。 - ブックマークに関連する (部分的に適用された?) マイグレーションを手動で削除しました:
./launcher enter dataを実行し、psqlを使用して両方の Discourse データベースにログインし、ALTER TABLE bookmarks DROP COLUMN bookmarkable_id, DROP COLUMN bookmarkable_type;を実行しました。 - 再ビルドを再実行しました:
./launcher rebuild web_only 2>&1
multisite:migrate が実行されなかったことで、今、何が欠けている可能性がありますか? ご意見をお聞かせいただけると幸いです。両方のサイトは機能しているようです。![]()