Travis 빌드가 실패합니다: posts.cached_version이(가) 존재하지 않습니다

Travis 빌드를 제대로 수행 중인 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시간 전에 Travis CI 제 커스텀 플러그인에 대해 재실행되었고, 모두 통과했습니다. 저는 아무것도 변경하지 않았습니다. 이전에 트래비스 빌드가 실패했다가 며칠 뒤 제가 아무 조치도 취하지 않았는데 다시 통과하기 시작한 적이 최소한 한 번 있었습니다.

바닐라 개발 환경에서 discourse-ratings 플러그인만 단독으로 실행해도 동일한 문제가 발생합니다. cached_version 컬럼을 명시적으로 요청하는 코드를 찾을 수 없습니다.

commit 해시: 093ee1d80c269afd00ba1341a3e71eb97e4ce7f1

RAILS_ENV=test rake db:drop db:create db:migrate를 실행했으므로 데이터베이스에 데이터가 없어야 합니다.

해당 행은 다음과 같습니다.

음, 우리에게 효과가 있었던 방법은 이겁니다. 마이그레이션 전에 관련 테이블에 reset_column_information을 호출했습니다. 어찌된 일인지 cached_version 컬럼이 스키마 캐시에 cached되어 있더군요 :wink: 또한, 이는 특히 test 환경에서 발생하는 문제인 것 같습니다.