未能关注 SKIP POST DEPLOYMENT MIGRATIONS 会导致问题

我有一个多站点实例,其中许多数据库迁移失败,因为

PG::DuplicateColumn: ERROR: column “bookmarkable_id” of relation “bookmarks” already exists

也许我应该去删除那些数据库中该表里的那个列?

看起来是因为 SKIP_POST_DEPLOYMENT_MIGRATIONS 设置导致之前的迁移未能运行,并且之前的迁移尚未完成。

如果我确认属实,我将删除它……

1 个赞

@martin 有什么想法吗?可能与最近的重构有关?

2 个赞

抱歉虚惊一场。我真讨厌这样。

问题在于我设置了 SKIP_POST_DEPLOYMENT_MIGRATIONS: 1,然后没有运行 multisite:migrate。在我运行了 SKIP_POST_DEPLOYMENT_MIGRATIONS=- multisite:migrate 之后,我才能够引导。

我只需要修复我的多站点工具,以便在启动新的半迁移容器后运行迁移。

2 个赞

但是很奇怪。Recovering from failed/partially applied upgrade 似乎遇到了同样的问题,而且看起来是一个标准安装。

我本想回复这个帖子,但认为这是另一个问题的相同症状。:slight_smile: 我承认自己了解不够,无法确认任何一种情况……

1 个赞

似乎与 DEV: Re-add polymorphic bookmark columns (#16261) · discourse/discourse@8040b95 · GitHub 相关

此提交是 2f1ddadff7dd47f824070c8a3f633f00a27aacde 的重做
我们撤销了它,因为它破坏了一个内部 CI 检查。我查看了
它,发生这种情况是因为添加书签的旧迁移
列仍然存在,并且这些列在迁移后被删除,
因此在迁移后运行之前,添加列的两个迁移发生冲突。

2 个赞

哇。这似乎能解释了。

有关于此的更新吗?

我的也出现了同样的问题。

我该如何将这个 git 复制到我的 discourse 中?