【发布时间】:2014-12-04 15:55:19
【问题描述】:
因此,我目前正在快速迭代 django 应用程序,并且不断调整 models.py。在一天或两天的编程和测试过程中,我生成了几十个迁移文件。有时我真的把模式拆开并完全重新做。这会导致迁移过程大量抱怨默认值和空值等。如果可能的话,我只是想暂缓所有迁移内容并重新开始迁移,因为我终于知道自己在做什么了。到目前为止,我的方法如下:
- 删除迁移文件夹中除
__init__.py之外的所有内容。 - 进入我的 PostgreSQL 控制台并执行:
DELETE FROM south_migrationhistory WHERE app_name='my_app'; - 在 PostgreSQL 控制台中,删除与 my_app 关联的所有表。
- 重新运行
./manage.py makemigrations my_app- 这会在我的迁移文件夹中生成一个0001_initial.py文件。 - 运行
./manage migrate my_app- 我希望此命令能够重新构建我的所有表,但它却显示:“没有要应用的迁移。”
什么给了?
另外,south_migrationhistory 数据库表在我抛弃 South 并切换到 Django 1.7 后是否仍在使用?
谢谢。
【问题讨论】:
-
请注意,您还可以从 Django(例如 shell)中删除迁移历史记录:
from django.db.migrations.recorder import MigrationRecorder; MigrationRecorder.Migration.objects.filter(app=my_app).delete()
标签: django database-migration django-south django-1.7 django-migrations