2014-01-10 38 views
2

我正在与一些网站上的其他开发人员(使用Django)合作,因为它是一个新的网站,数据库模式不断变化。我们使用South进行模式迁移,但遇到了我们每个人都拥有自己的分支并正在单独执行项目的问题。当代码经常合并时,为同一模型生成了多个迁移(对于模型A,可能有三个迁移ID为003)。遇到与南迁移冲突

好像南方大约是管理冲突时,他们涉及到不同的车型相当不错: http://south.readthedocs.org/en/latest/tutorial/part5.html#team-workflow

但与同型号打交道时就有点凌乱手动创建合并迁移。

我想知道是否有更好的方法做这个或比南方更好的工具。

我有一个想法是没有人检查迁移文件,只需将模型更改直接检入git。这样每个人都可以自己进行迁移,不用担心冲突。不知道这是否是一种好的做法...

我很好奇其他人如何管理这些情况。

谢谢:)

回答

2

从南部文档:

确保你的团队知道谁正在处理什么,所以他们不写,影响DB同一部位的迁移同时。

这就是你不应该这样做的事情:不要创建影响相同模型的迁移,除非你确定能够将它们稍后合并到主开发主干中。当两个开发人员修改模型的相同字段时,工具无法弄清楚正确的数据库模式需要什么。

在这种情况下,您需要手动修复迁移并按顺序获取模型字段。这可能意味着迁移回来并在合并分支与中继之前构建新的迁移。

+0

所以我想问题x的答案是“没有问题x”?你如何“手动修复迁移”?你如何“构建新的迁移”,这不仅会导致同样的问题? –

+0

@EdwardNewell您需要确定正确的字段类型,然后生成完成该更改的迁移。所以这可能意味着丢弃其中一个迁徙或丢弃并创建一个新迁徙。 –