我运行了一个代码更新,指向两个前端服务器(Amazon Web Service实例)。
南迁移作为更新的一部分包含在内。由于迁移,实时站点似乎随意在当前代码修订版和先前版本之间进行迁移。
自从发现这个以来,一位先前的开发人员(在我出现之前离开了公司)说,&我引用:
"永远不会并行运行迁移。两次运行迁移会导致重复新对象>以及其他错误!"
我的代码更改不涉及任何models.py更改; migrate命令只是结构更新脚本的一部分。在迁移期间也没有抛出任何错误,它们似乎正常运行。
我有数据库备份,所以我可以作为最后的手段回滚数据库。 有没有其他方法可以在不这样做的情况下对问题进行排序?
感谢您阅读
编辑:我应该添加,我将相同的代码推送到临时服务器并且工作正常,所以问题不是代码
答案 0 :(得分:0)
首先,如果一次迁移尝试添加另一次迁移已添加的表或列,而另一次迁移正在运行,则第一次迁移将失败,回滚事务(即,不更改任何内容)。所以,你不应该真的遇到像你描述的同行那样的问题。
但是,如果您确实以某种方式解决了这个问题(部分应用了迁移等),以下是几个选项:
MigrationHistory
MigrationHistory
个对象,并将其删除注意,每个选项的最后一步是“从部署脚本中删除迁移”。这是因为在部署过程中不应运行数据库更改语句。即使感觉一切都错了,老派,你应该在部署后真正运行迁移,在部署期间完全停止服务,如果新代码部署在旧数据库表中可能会出现问题,并且让应用程序保持运行当迁移不太容易出现上述问题时。
答案 1 :(得分:0)
事实证明问题在于其中一个前端服务器上的git fetch没有采取,这就是造成问题的原因..这与并行运行迁移无关(尽管我不应该这样做)< / p>