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

时间:2014-10-09 16:12:38

标签: django database-migration django-south django-1.7 django-migrations

所以我现在正在快速迭代django应用程序而且我一直在调整models.py。在一两天的编程和测试过程中,我生成了几十个迁移文件。有时候我真的撕开了架构并完全重新做了。这会导致迁移过程对默认值和空值等抱怨很多。如果可能的话,我只想抓住所有迁移的东西并重新开始迁移,因为我终于知道我在做什么了。到目前为止,我的方法如下:

  1. 删除迁移文件夹中除__init__.py以外的所有内容。
  2. 进入我的PostgreSQL控制台并执行:DELETE FROM south_migrationhistory WHERE app_name='my_app';
  3. 在PostgreSQL控制台上,删除与my_app关联的所有表。
  4. 重新运行./manage.py makemigrations my_app - 这会在我的迁移文件夹中生成0001_initial.py文件。
  5. 运行./manage migrate my_app - 我希望此命令重新构建我的所有表,但它会说:“不应用迁移。”
  6. 是什么给出了?

    此外,south_migrationhistory数据库表现在还在使用,我已经转向南方并已切换到Django 1.7?

    感谢。

1 个答案:

答案 0 :(得分:34)

因此,我在问题中概述的分步计划确实有效,但我不得不从south_migrationhistory数据库表中删除行,而是必须从django_migrations数据库表中删除行。 / p>

命令为:DELETE FROM django_migrations WHERE app='my_app'

完成此操作后,您将能够从头开始重新运行迁移。