【问题标题】:Why there is no migrations detected but I just created new migrations?为什么没有检测到迁移但我刚刚创建了新的迁移?
【发布时间】:2015-08-04 07:14:00
【问题描述】:

这是我的工作流程,使用 ma​​kemigrations 和 migrate 一切看起来都非常整洁。但是,我想从我的模型重新开始,所以我:

  1. rm -rf django 应用目录下的所有迁移文件;
  2. 删除数据库中所有相关的表;
  3. makemigrations 会生成新的迁移文件;

但是当我想将它迁移到数据库中时,它说没有要应用的迁移。我认为迁移背后的机制是模型 -> 迁移 -> 数据库更改,如果我放弃后两者,它应该重新开始。可惜不是。

Django == 1.8.2

CLOSED 有一个名为 django-migrations 的表跟踪所有更改并删除相关记录,然后我可以进行迁移。感谢那些帮助过的人!

【问题讨论】:

  • 什么版本的 django?

标签: django data-migration


【解决方案1】:

还有另一个表 django_migrations 用于跟踪每个应用程序运行了哪些迁移。您必须重置它才能让 django 知道您已经重新开始。

如果您已经更改了数据库,请尝试运行

python manage.py migrate <app> --fake zero

【讨论】:

  • “假”是什么意思?
  • 好吧,因为您说您已经删除了无法向后运行迁移到零状态(初始状态前)的表。尝试更改不再存在的表将失败。 “fake”本质上是告诉 django 运行迁移文件而不对实际数据库进行任何更改。 docs.djangoproject.com/en/1.8/ref/django-admin/…
猜你喜欢
  • 1970-01-01
  • 2016-05-11
  • 1970-01-01
  • 2019-03-30
  • 1970-01-01
  • 2010-09-09
  • 1970-01-01
  • 2015-11-01
  • 1970-01-01
相关资源
最近更新 更多