Discourse 3.2.0에서 3.3.0으로 업그레이드 시 Postgres 문제

안녕하세요! Discourse v3.2.0 인스턴스를 v3.3.0으로 업그레이드하려고 시도했습니다. 데이터베이스 마이그레이션을 실행하는 중에 실패했습니다.

Execute db:migrate
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)
ERROR:  cannot drop column user_id of table invites because other objects depend on it
DETAIL:  trigger invites_user_id_readonly on table invites depends on column user_id of table invites
HINT:  Use DROP ... CASCADE to drop the dependent objects too.

데이터베이스에서 3개의 트리거를 삭제하여 이 문제를 해결했습니다:

DROP TRIGGER invites_user_id_readonly ON invites;

DROP TRIGGER invites_redeemed_at_readonly ON invites;

DROP TRIGGER user_api_keys_scopes_readonly ON user_api_keys;

실제 질문은 이것이 Discourse 측의 오류인지 확인해 주실 수 있는지, 그리고 향후 이를 수정할 계획이 있는지입니다.

PostgreSQL 14.10을 사용 중입니다.

이 문제를 수정하기 위해 PR을 생성했습니다.

문제를 재현할 수 없고, 다른 사용자도 유사한 문제를 보고하지 않아 해당 PR을 닫겠습니다.

Migration::ColumnDropper.execute_drop은 각 컬럼에 대해 CASCADE 옵션을 사용하여 read_only 함수를 삭제합니다. 이 과정에서 트리거도 함께 삭제됩니다.

read_only 함수를 참조하지 않는 트리거가 있었던 것으로 보입니다. 어떻게 그렇게 되었는지 잘 모르겠습니다. 표준 설치 방식을 사용하고 계신가요?