南迁移和Django迁移之间有什么区别?

18

有谁能够解释一下南向迁移(South migrations)和Django迁移(Django migrations)之间的区别吗?它们各自有什么优缺点?


2
自从Django 1.7添加了迁移功能,就不再需要使用South了。South无法与现代版本的Django一起使用 - 只需使用Django迁移即可。 - Alasdair
3
这是你的答案 - http://south.aeracode.org/。在Django 1.7之前,没有内置支持迁移的功能。这就是为什么要使用South的原因。 - xyres
由于一些限制,我必须使用Django 1.4版本。 - Pransh Tiwari
1
@PranshTiwari 那么你别无选择,只能使用South。你不能使用Django迁移。这基本上使你的问题无意义了。 - xyres
它也会使你的网站极其不安全。 - Daniel Roseman
2
不确定为什么会被踩。我是通过搜索如何在Django中重命名模型来发现South的,然后通过搜索落到了https://south.readthedocs.io/en/latest/,而不是@xyres的链接。所以感谢Pransh提出这个问题,这里的评论和答案帮助我澄清了一些事情。 - texnic
1个回答

23

South是一个第三方Django应用程序,在Django 1.7引入内置迁移解决方案之前,它增加了对迁移的支持。除非您被困在无法维护的Django版本中,否则没有理由使用South。顺便说一句,只需查看south项目页面,就可以回答您的问题:

South已被弃用。

从Django 1.7开始,迁移已内置到Django的核心中。如果您运行的是旧版本,则可以在BitBucket上找到该存储库。

就功能而言,两者都非常相似(这并不奇怪,因为新的内置迁移系统起源于South的2.0分支),但是新系统更好用,特别是当你必须合并两个分支时,每个分支都有自己的迁移。


15
令人惊讶并且令人烦恼的是,如果你只是访问https://south.readthedocs.io/en/latest/,你将找不到任何有关South被弃用的提示。Stackoverflow的搜索为我找到了South,而我在Django 1.10之前从未使用过它。我最初得出结论,South是一种比Django内置迁移更高级的工具。 - texnic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接