【问题标题】:running into migration conflicts with south与南方发生移民冲突
【发布时间】:2014-01-30 00:50:51
【问题描述】:

我正在与网站上的其他一些开发人员合作(使用 Django),因为它是一个新网站,并且数据库架构在不断变化。我们正在使用 South 进行模式迁移,但遇到了这样一个问题:我们每个人都签出了自己的分支,并且正在处理我们自己的项目的单独部分。当代码经常被合并回来时,会为同一个模型生成多个迁移(对于模型 A,可能有三个 id 为 003 的迁移)。

当涉及到不同的模型时,South 似乎非常擅长管理冲突: http://south.readthedocs.org/en/latest/tutorial/part5.html#team-workflow

但是在处理相同的模型时,手动创建合并迁移会有点混乱。

我想知道是否有比 South 更好的方法或更好的工具。

我的一个想法是没有人签入迁移文件,只需将模型更改直接签入 git。这样每个人都可以运行自己的迁移,而不必担心冲突。不确定这是否是一个好习惯...

我很好奇其他人是如何处理这些情况的。

谢谢:)

【问题讨论】:

    标签: python django django-south


    【解决方案1】:

    来自南方的文档:

    确保您的团队知道谁在做什么,这样他们就不会编写同时影响数据库相同部分的迁移。

    所以这是您不应该做的事情:不要创建影响同一模型的迁移,除非您确定以后能够将它们合并到主开发主干中。当两个开发人员修改模型的同一字段时,工具无法确定正确的数据库架构。

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

    【讨论】:

    • 所以我猜问题 x 的答案是“没有问题 x”?您如何“手动修复迁移”?你如何“构建一个新的迁移”而不只是导致同样的问题?
    • @EdwardNewell 您需要确定正确的字段类型是什么,然后生成完成该更改的迁移。因此,这可能意味着丢弃其中一个迁移,或者丢弃两者并创建一个新迁移。
    猜你喜欢
    • 2014-08-12
    • 2012-09-26
    • 2013-11-26
    • 1970-01-01
    • 2017-06-24
    • 2015-10-04
    • 1970-01-01
    • 2013-04-15
    • 2017-01-24
    相关资源
    最近更新 更多