如何取消应用 django 1.7 中的第一次迁移 [重复]

Posted

技术标签:

【中文标题】如何取消应用 django 1.7 中的第一次迁移 [重复]【英文标题】:How to unapply the very first migration in django 1.7 [duplicate] 【发布时间】:2015-01-24 12:42:27 【问题描述】:

看起来回滚到任何迁移都可以使用:

./manage.py migrate <app> <migration_to_go_to>

但是,这需要应用实际迁移,我需要回滚第一次迁移!

具体来说,我想回滚内置的“会话”应用(它只有一个迁移,“0001_initial”。)

有没有办法做到这一点?

谢谢!

【问题讨论】:

我认为你是对的。因为我用不同的术语考虑了这个问题(“取消应用”而不是“迁移回来”,“非常第一个”而不是“初始”)我没有看到那个问题。 【参考方案1】:

只要做:

./manage.py migrate &lt;app&gt; zero

【讨论】:

这确实删除了所有表和迁移历史记录,但并没有删除我的0001_initial.py 迁移文件。请确认我是否应该手动删除它? 这有点取决于您通过向后迁移尝试实现的目标。在运行向后迁移之前,您可能会从对迁移系统的更深入了解中受益,因为如果使用不当,它们会让您一团糟!有两个迁移命令。 makemigrations 将查看您的模型,将它们与任何迁移文件进行比较,并创建您需要的任何必要的迁移文件。它不与数据库交互。另一方面,migrate 根据那里的任何迁移文件在您的数据库上运行命令。它不会添加/删除迁移文件。 这是zero 而不是0000,这太疯狂了

以上是关于如何取消应用 django 1.7 中的第一次迁移 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 1.7 迁移中调用 loaddata 会抛出“‘字段列表’中的未知列‘[字段]’”

Django 1.7 中的迁移

django 1.7 迁移——如何清除所有迁移并从头开始?

具有默认值的外键上的 Django 1.7 迁移错误

Django 1.7 迁移不会重新创建删除的表,为啥?

我的旧项目出现 Django 1.7 迁移问题