다음과 같은 오류가 발생합니다:
2021-12-13 08:57:12.809 UTC [902] discourse@discourse ERROR: column "token" of relation "email_tokens" does not exist
2021-12-13 08:57:12.809 UTC [902] discourse@discourse STATEMENT: ALTER TABLE email_tokens ALTER COLUMN token DROP NOT NULL
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedColumn: ERROR: column "token" of relation "email_tokens" does not exist
관련 링크?:
committed 06:38AM - 13 Dec 21 UTC
This column was dropped in a previous commit, in post migrations.
Unfortunatly … that causes smoke tests to fail as there is a period between
migration and post migrations where records can not be inserted into the
table.
alexsts
(Alex Macmillan)
12월 13, 2021, 10:02오전
2
우리도 같은 문제를 겪고 있습니다.
현재 실패한 재빌드 이후 ./launcher start app 명령어로 기존 컨테이너를 성공적으로 시작했지만, 마이그레이션 중간에 실패가 발생했기 때문에 데이터베이스가 일관된 상태인지 알 수 없습니다.
안심을 위해, 이와 같은 실패가 발생했을 때 데이터베이스 마이그레이션이 완전히 롤백되는지 알려 주실 수 있을까요?
저도 마찬가지입니다. 8시간 전 백업으로 롤백하고 있어요.
pfaffman
(Jay Pfaffman)
12월 13, 2021, 10:43오전
4
버그인 것 같습니다. SKIP_POST_DEPLOYMENT_MIGRATIONS이 설정되어 있지 않은 것 같은데, 맞습니까?
아니면, 임시 해결책으로 app.yml에서 해당 값을 1로 설정한 후 재빌드를 실행하고, 다시 원래 값으로 되돌려 업그레이드를 수행하거나 컨테이너 내부에서 값을 0으로 설정한 뒤 명령줄에서 마이그레이션을 실행해 보실 수 있습니다.
제안해 주셔서 감사합니다, Jay. 하지만 저는 app.yml에 이 설정이 되어 있지 않은 것 같습니다.
david
(David Taylor)
12월 13, 2021, 4:08오후
6
해당 문제를 겪고 계신 분 중 rails 콘솔에서 다음 명령어를 실행하여 결과를 공유해 주실 수 있을까요?
./launcher enter app
rails c
…
DB.query "SELECT table_schema, table_name, column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='email_tokens' AND column_name='token';"
확인해 주실 수 있을까요?
재빌드할 때마다 이 오류가 발생하고 있는 것 같습니다.
david
(David Taylor)
12월 13, 2021, 4:15오후
9
완벽합니다, @aksoforever 님 - 제 추측이 맞았네요. 이 PR이 문제를 해결할 것 같습니다:
main ← fix-migration
merged 04:19PM - 13 Dec 21 UTC
We were checking for the existence of the column in any schema, including the `b… ackup` schema. This can cause 'column does not exist' errors. In fact, we should only be checking in the `public` schema.
재구축 후에도 여전히 오류가 발생합니다.
다시 재구축이 필요한 것 같습니다. 시도해 보겠습니다.
david
(David Taylor)
12월 13, 2021, 4:21오후
11
해당 커밋이 tests-passed 브랜치에 반영되기까지 10~15분이 걸릴 예정입니다. 완료되면 여기에 알려드리겠습니다.
david
(David Taylor)
12월 13, 2021, 4:34오후
12
네, 해당 커밋이 이제 tests-passed에 반영되었습니다.
cc @aksoforever @merefield @alexsts @AquaL1te @pfaffman @TechGeek - 이제 재빌드가 정상적으로 작동할 것입니다. 불편을 끼쳐 죄송합니다!
네, 완벽하게 작동합니다. 데이비드, 감사합니다.
정말 정말 도움이 많이 되었습니다.