【发布时间】:2010-11-29 15:23:09
【问题描述】:
我想在我的 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 迁移,然后 0008 中的下一个--auto将完美运行。
什么是更好的选择?还是我还缺少其他东西?
【问题讨论】:
标签: django migration django-south