【问题标题】:How to migrate back from initial migration in Django 1.7?如何从 Django 1.7 中的初始迁移迁移回来?
【发布时间】:2014-10-25 17:51:31
【问题描述】:

我创建了一个包含一些模型的新应用,但现在我注意到有些模型经过深思熟虑。由于我还没有提交代码,因此明智的做法是将数据库迁移到最后的良好状态并使用更好的模型重做迁移。在这种情况下,最后一个良好状态是新应用不存在的数据库。

如何从 Django 1.7 中的初始迁移迁移回来?

South 中可以这样做:

python manage.py migrate <app> zero

这将从迁移历史记录中清除 &lt;app&gt; 并删除 &lt;app&gt; 的所有表。

如何使用 Django 1.7 迁移来做到这一点?

【问题讨论】:

    标签: python django django-1.7 django-migrations


    【解决方案1】:

    你也可以对 Django 1.7+ 做同样的事情:

    python manage.py migrate <app> zero
    

    这将从迁移历史记录中清除 &lt;app&gt; 并删除 &lt;app&gt; 的所有表

    请参阅django docs 了解更多信息。

    【讨论】:

    • 这是否记录在任何地方?关于迁移的 django 文档严重缺乏......
    • Doc 可以在 django-admin 和 manage.py 文档页面找到:docs.djangoproject.com/en/1.7/ref/django-admin/…
    • @n__o 谢谢。更新了答案。
    • 你将如何处理 IntegrityError: NOT NULL 约束失败?
    • 刚刚在 Django 1.9 上尝试过,效果也很好。谢谢
    【解决方案2】:

    你也可以使用版本号:

    python manage.py migrate <app> 0002
    

    来源:https://docs.djangoproject.com/en/1.7/ref/django-admin/#django-admin-migrate

    【讨论】:

    • 问的问题是关于从 initial 迁移中迁移回来,使用 0000 不起作用
    • 我明白了,我可能误解了这个问题(尽管恕我直言,写得不是特别好)。你为什么不直接放弃数据库?哦,好吧
    • 为一个表删除整个数据库有点矫枉过正
    猜你喜欢
    • 2015-06-27
    • 2014-11-19
    • 2014-12-04
    • 2014-12-13
    • 2014-05-28
    • 2014-12-21
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多