南迁移和 django 迁移有啥区别?

Posted

技术标签:

【中文标题】南迁移和 django 迁移有啥区别?【英文标题】:What is the difference between south migrations and django migrations?南迁移和 django 迁移有什么区别? 【发布时间】:2019-02-14 22:54:24 【问题描述】:

谁能解释一下南迁移和django迁移之间的区别?一个人比另一个人有什么优势/劣势?

【问题讨论】:

自从 Django 1.7 中添加了迁移后,就不再需要使用 South。 South 不适用于现代版本的 Django - 只需使用 Django 迁移。 这是你的答案 - south.aeracode.org。在 Django 1.7 之前,没有对迁移的内置支持。这就是 South 被建造和使用的原因。 由于一些限制,我必须使用 Django 1.4 版。 @PranshTiwari 那么你别无选择,只能使用 South。您不能使用 Django 迁移。这几乎使您的问题变得毫无意义。 不知道为什么要投反对票。我在 2019 年通过寻找如何在 Django 中重命名模型找到了 South。通过搜索,我登陆了south.readthedocs.io/en/latest 而不是@xyres 的链接。所以感谢 Pransh 提出这个问题,这里的 cmets 和答案帮助我解决了问题。 【参考方案1】:

South 是第三方 django 应用程序,它在 Django 1.7 中引入内置迁移解决方案之前添加了对迁移的支持。除非你被一个早已死去的 Django 版本卡住,否则你完全没有理由使用 South。 FWIW,只需检查the south project's page 应该已经回答了您的问题:

South 已被弃用。

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

功能范围两者都非常相似(这并不奇怪,因为新的内置迁移系统作为 South 的 2.0 分支开始了它的生命),除了新系统工作得更好,特别是当您必须合并两个分支时有它自己的迁移。

【讨论】:

令人惊讶和恼人的是,如果你只是去south.readthedocs.io/en/latest,你不会发现任何关于 South 被弃用的提示。 *** 的搜索为我找到了 South,而我在 1.10 之前从未使用过 Django。我首先得出的结论是,South 是一种比 Django 内置迁移更高级的工具。

以上是关于南迁移和 django 迁移有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

陷入 django 南迁移 - TransactionManagement 错误

Django 1.7 内置迁移与南迁移?

测试使用南迁移的 Django 应用程序

Django 南迁移 - 添加 FULLTEXT 索引

南迁移错误:django.contrib.auth 的 NoMigrations 异常

如何在南迁移期间调用 django 模型类的静态方法