django和南南移徙与冲突(0007_two...和0007_one)如何解决?
-
22-07-2019 - |
题
我想要使用南在我django项目作为移徙工具,但我有问题与使用南多用户的情况:
两个开发工作的同时在不同的机器上建立两个移民数量相同
在首脑:
0007_extend_lizard.py
在第二PC:
0007_swap_name_adopter.py
在这种情况下,我可以运行 ./manage migrate --merge
或 ./manage migrate 0006
(rollback)和运行 再一次 ./manage migrate
.但是当我想添加新的领域 models.py
并运行 ./manage startmigration southdemo --auto
, 然后南得到 models = {}
元数据从上次迁移,以及它们缺少信息,从第一迁移。这样的结果是创建移徙0008与创造再次(!!!) 更改第0007.
什么是最好的方式来解决这个问题?
目前我正在考虑的两个选项:
手工合并的两0007移徙在一个文件,然后迁移(但一些人必须执行"回滚")
手动将失踪
models = {}
元以上0007迁移和再下一个--auto
在0008会的工作。
什么是更好的选择吗?或者是还有别的东西我的失踪?
解决方案
后做的 migrate --merge
或rollback和迁移,如果你知道最近的移徙现在已不准确冻结的模式,我将只是创建一个新的没有运移徙对目的使冻结模型最新的。只要运行 ./manage.py startmigration myapp --empty freeze_noop
.现在你的冰冻的模型将以最新为下一次你希望自动检测一个真正的移徙。
也许这似乎是一个小丑来创建一个没有运移民的,但对我来说这似乎清洁于该手册的历史记录编辑选择你的建议。你可以觉得没有-op移徙作为一个相当于"合并提交"在DVC.
这个问题应该提到 这一部分的南docs;我已经申请 一个问题,对于它.(更新:现在它是。)