Travis ビルドが失敗:posts.cached_version が存在しません

proper travis builds で構築している 3 つのプラグインが、昨日からすべて失敗し始めています。すべて同じように失敗しており、この問題がプラグインによって引き起こされているとは考えられません:

020-05-01 00:29:58.212 UTC [334] ERROR:  column posts.cached_version does not exist at character 193
2020-05-01 00:29:58.212 UTC [334] HINT:  Perhaps you meant to reference the column "posts.baked_version".
2020-05-01 00:29:58.212 UTC [334] STATEMENT:  SELECT "posts"."id", "posts"."user_id", "posts"."topic_id", "posts"."post_number", "posts"."raw", "posts"."cooked", "posts"."created_at", "posts"."updated_at", "posts"."reply_to_post_number", "posts"."cached_version", "posts"."reply_count", "posts"."quote_count", "posts"."deleted_at", "posts"."off_topic_count", "posts"."like_count", "posts"."incoming_link_count", "posts"."bookmark_count", "posts"."score", "posts"."reads", "posts"."post_type", "posts"."vote_count", "posts"."sort_order", "posts"."last_editor_id", "posts"."hidden", "posts"."hidden_reason_id", "posts"."notify_moderators_count", "posts"."spam_count", "posts"."illegal_count", "posts"."inappropriate_count", "posts"."last_version_at", "posts"."user_deleted", "posts"."reply_to_user_id", "posts"."percent_rank", "posts"."notify_user_count", "posts"."like_score", "posts"."deleted_by_id" FROM "posts" WHERE ("posts"."deleted_at" IS NULL) AND 1=0
PG::UndefinedColumn: ERROR:  column posts.cached_version does not exist
LINE 1: ...ts"."updated_at", "posts"."reply_to_post_number", "posts"."c...

先ほどサイトをアップグレードしましたが、問題なく動作しました。正常に動作しているサイトには影響がないようです。

再度試しましたが(14 時間経ちました!)、問題が解消されていないようです。何か更新が必要なものはありますか?

つまり、これがご指摘の点でしょうか?あの列は削除されたのでしょうか?@sam が最近いくつかの列を削除したのを覚えています。

数年前

これらのプラグインのいずれかが非公式ですか?古いバージョンのカレンダーをインストールしていますか?

これらはすべて非公式です。そうでなければ、私がテストすることはありません。:wink:

それが明確でなかったら申し訳ありません。

これらは少なくとも数週間、すべてのテストを通過しています。以前、数日間テストに失敗した時期がありましたが、数日後に再び正常に動作し始めました。

私の知る限り、これらはいずれもカレンダーに関連する処理は行いません。もし興味があれば、これは非常に単純なものです。

それらのいずれかにマイグレーションはありますか?

いいえ、どうやってマイグレーションを実行するかはわかりません。:wink:

つまり、状況は改善しました。14時間前、https://travis-ci.org/ でカスタムプラグインの再実行が行われ、すべてが正常に完了しました。私は何も変更していません。以前も同様のことが少なくとも一度あり、Travisのビルドが失敗した後、数日後には何もしなくても再び成功するようになったことがあります。

vanilla な開発環境で discourse-ratings プラグインのみを実行している際、同じ問題が発生しています。cached_version カラムを明示的に要求するコードは見当たりません。

コミットハッシュ: 093ee1d80c269afd00ba1341a3e71eb97e4ce7f1

RAILS_ENV=test rake db:drop db:create db:migrate を実行したため、DB にはデータが存在しないはずです。

問題の行は以下です。

はい、これが私たちが成功させた方法です。マイグレーション前に、関連するテーブルで reset_column_information を呼び出しました。どうやら、cached_version カラムがスキーマキャッシュ内で「キャッシュ」されているようです ;)。また、これは特に test 環境で問題となるようです。