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 오류가 발생했습니다. 오류 메시지 기준으로 보아 다형성(polymorphic) 북마크 기능, DEV: Re-add polymorphic bookmark columns - Pull Request #16261 - discourse/discourse - GitHub 과 관련이 있을 수 있습니다 (@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가 실행되지 않았기 때문에 지금 놓치고 있을 수 있는 것이 있을까요? 의견이 있으면 감사하겠습니다. 두 사이트 모두 정상적으로 작동하는 것 같습니다. ![]()