从 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 中的建议帮助我恢复了在线状态。我开了一个新话题,因为这个问题似乎专门针对(dockerized)多站点安装。
问题似乎是 multisite:migrate 试图再次运行之前迁移中已经运行过的同一个迁移。结果是 PG::DuplicateColumn: ERROR: column "bookmarkable_id" of relation "bookmarks" already exists。根据错误消息,这可能与多态书签功能有关,https://github.com/discourse/discourse/pull/16261 (ping @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 没有执行,我可能错过了什么?我很想听听大家的想法。不过,两个站点似乎都能正常工作。![]()