我目前没有在Django项目中使用迁移,但我打算很快使用。我知道South是事实上的工具,我本来打算使用它,但后来我在Django项目站点上看到,开发版本(我猜将作为1.7发布)有一个核心迁移工具,运行为migrate。
我很少有使用迁移工具的经验(我在南方安装了Django-CMS,玩了一天左右),对于初学者来说哪一个是最好的?
而且,由于迁移本身还很年轻,Django的版本更是如此,那么我是否应该选择南方呢?
最后,另一个问题是,如果我从South开始(大部分Django项目都是v1.5),当我升级到1.6,然后升级到1.7时,我会很难转换到Django的核心迁移吗?
发布于 2013-12-23 22:34:42
很容易放弃南方移徙历史,并初始化任何其他类型的移徙工具。
Django核心迁移是基于南方的,因此我想将南方迁移历史导出到Django核心迁移是可能的。
因为Django核心迁移还没有发布,而且您的目的是学习,我建议从南方开始。
发布于 2014-01-13 17:31:31
由于安德鲁戈德温(创建者或Django核心迁移)的话是:“南方的四年来的设计达到严重的限制,现在是时候添加迁移支持到Django本身”,我不会押注向Django核心迁移输出南迁移历史的能力。
这就是为什么,如果可以的话,我建议您等待1月20日: Django 1.7alpha版本的核心迁移将发布,您可以看到这里。
最终,安德鲁·戈德温自己在南边工作,所以您不应该将Django核心迁移看作一个全新的工具,而应该看作是南v2。
然后,您可以非常肯定,一旦Core迁移发布,South就不会得到真正的维护。
这就是为什么我建议等待几段时间,给这个新工具一个机会:)
发布于 2014-05-01 12:29:46
Django 1.7的文档讨论了从南方升级的问题:
如果您已经使用South0.x创建了已有的迁移,那么使用
django.db.migrations的升级过程非常简单:
就这样!唯一复杂的是,如果您有一个外键的循环依赖循环;在这种情况下,makemigrations可能会进行多个初始迁移,您需要使用以下方法将它们全部标记为应用:
python manage.py迁移--假yourappnamehere
(来自这里)。
https://stackoverflow.com/questions/20751534
复制相似问题