【发布时间】:2012-01-11 14:35:44
【问题描述】:
我最近开始深入研究 South 文档,发现它有两种不同类型的迁移:
- 架构迁移
- 数据迁移
由于我的无知,我总是对所有事情都使用模式迁移。换句话说,即使我有真正的“数据迁移”,我也只是使用 South 的模式迁移来转换数据(没有明显的后果)。
当我阅读文档时,我没有发现这种方法有什么问题。有谁知道这两种迁移之间的根本区别以及坚持模式迁移可能会丢失什么?
【问题讨论】:
标签: django django-south
我最近开始深入研究 South 文档,发现它有两种不同类型的迁移:
由于我的无知,我总是对所有事情都使用模式迁移。换句话说,即使我有真正的“数据迁移”,我也只是使用 South 的模式迁移来转换数据(没有明显的后果)。
当我阅读文档时,我没有发现这种方法有什么问题。有谁知道这两种迁移之间的根本区别以及坚持模式迁移可能会丢失什么?
【问题讨论】:
标签: django django-south
实际上只有一种迁移,但有两个命令。 datamigration 创建一个新的空白迁移供您填写,而schemamigration 是一个可选的便捷命令,它将尝试检测架构更改并自动创建迁移。
编辑:来自http://south.aeracode.org/docs/commands.html#schemamigration
虽然 migrate 是 South 真正的肉和骨头,但 schemamigration 相比之下完全是可选的。它是一个实用程序,可帮助您编写一些迁移(特别是更改架构的迁移);如果您愿意,您可以忽略它并自己编写所有内容,在这种情况下,我们祝您好运,打字愉快。
【讨论】:
根据 South 的主要开发者:
您可以在这里看到不同之处: https://bitbucket.org/andrewgodwin/south/src/b3ed126b19a2/south/v2.py
如图所示,唯一的区别是数据迁移不是 如果您有一个需要它的数据库(MySQL),请试运行。否则, 至少目前没有什么不同——管理层 但是命令不同(这都是关于用户界面分离, 基本上)。
【讨论】: