与Django South的向后迁移

好吧,这似乎是一个非常愚蠢的问题,我肯定我在某个地方遗漏了一些东西

如何在Django上使用South执行向后迁移

所以我调整了我的模型,用schemamigration创建了一个迁移,用migrate运行迁移,现在我意识到这不是我想要的,我想要回到以前的方式

除了手动编辑db表和删除迁移文件之外,我应该如何回滚迁移?我通过Google找到了使用South进行向后迁移的参考,但还没有找到一个可靠的代码示例

有人能帮忙吗

您需要在要回滚的迁移之前计算迁移的次数

你的应用程序应该有一个迁移目录,其中的文件名为

0000_initial.py
0001\u添加了一些\u字段。py
0002\u添加了\u一些\u更多\u字段。py
0003\u删除了一些内容。py

通常,当您运行/manage.py migrate\u应用程序时,South会按顺序运行所有新的迁移。(它查看数据库表以确定哪些是“新的”)

但是,您也可以按编号指定任何迁移,South将向前或向后迁移数据库,以将其迁移到该点。因此,对于上面的示例文件,如果您已经迁移到0003,并且希望反向运行0003(有效地撤消它),那么您将运行

/manage.py迁移您的应用程序0002

South将查看数据库,意识到它已经运行了0003,并确定它必须运行0003的反向迁移才能返回到0002

发表评论