我想在我的 django 项目中使用 south 作为迁移工具,但是在多用户场景中使用 south 时遇到问题:
两个在不同机器上同时工作的开发人员创建了两个具有相同数量的迁移
在第一台电脑上:
0007_extend_lizard.py
在第二台电脑上:
0007_swap_name_adopter.py
在这种情况下,我可以运行./manage migrate --merge
或./manage migrate 0006
(回滚)并再次 ./manage migrate
运行。但是,当我想在其中添加新字段models.py
并运行./manage startmigration southdemo --auto
时,南会models = {}
从上次迁移中获取元数据,并且它缺少第一次迁移中的信息。这样做的结果是创建迁移 0008,并从第一个 0007 再次创建(!!!)更改。
解决这个问题的最佳方法是什么?
目前我正在考虑两种选择:
手动将两个 0007 迁移合并到一个文件中,然后迁移(但有些人必须执行“回滚”)
手动将丢失
models = {}
的元移动到最后 0007 迁移,然后--auto
0008 中的下一个将完美运行。
更好的选择是什么?还是我还缺少其他东西?