我最近开始深入挖掘 南 文档并发现它有两种不同类型的迁移:
- schemamigration
- 数据迁移
由于我的无知,我总是使用schemamigrations来处理所有事情。换句话说,即使我有一些真正的“数据迁移”,我也只是使用South的模式迁移来转换数据(没有明显的后果)。
当我阅读文档时,我没有看到这种方法的错误。有没有人知道两次迁移之间的根本区别以及我坚持使用schemamigrations可能会遗漏的内容?
我最近开始深入挖掘 南 文档并发现它有两种不同类型的迁移:
由于我的无知,我总是使用schemamigrations来处理所有事情。换句话说,即使我有一些真正的“数据迁移”,我也只是使用South的模式迁移来转换数据(没有明显的后果)。
当我阅读文档时,我没有看到这种方法的错误。有没有人知道两次迁移之间的根本区别以及我坚持使用schemamigrations可能会遗漏的内容?
实际上只有一种迁移,但有两种命令。 datamigration
创建一个新的空白迁移,供您填写,同时 schemamigration
是一个可选的便捷命令,它将尝试检测架构更改并自动创建迁移。
编辑:来自 http://south.aeracode.org/docs/commands.html#schemamigration
虽然迁移是南方真正的肉和骨头,但相比之下,schemamigration是一个完全可选的附加功能。它是一个实用程序,可以帮助您编写一些迁移(特别是那些更改模式的迁移);如果你愿意,你可以忽略它并写下你自己的一切,在这种情况下,我们祝你好运,打字快乐。
根据南方的首席开发人员:
你可以在这里看到不同之处: https://bitbucket.org/andrewgodwin/south/src/b3ed126b19a2/south/v2.py
如图所示,唯一的区别是数据迁移不是 如果你有一个需要它的数据库(MySQL),请运行。除此以外, 至少在目前,管理层没有什么区别 但命令不同(这完全取决于用户界面分离, 本质上)。