重置长Django迁移

时间:2016-07-08 14:43:49

标签: django-migrations django-1.9

随着项目的增长,迁移(makemigrationsmigrate)的迁移时间越来越长,每次部署都会延迟很多次。 Django允许您访问squash them,因此您没有很长的迁移文件列表,但迁移过程需要相同的时间。

然后我尝试了以下内容:

  1. 删除我的应用中的所有迁移文件
  2. 清理数据库中的django_migrations
  3. 运行makemigrations(为我的应用创建0001_initial
  4. 运行migrate --fake(填充到django_migrations表)
  5. 现在新的迁移速度非常快,但却失去了迁移历史记录。

    所以我的问题是,考虑到这可能就像v1.0,它是一个独立的项目,任何其他项目都依赖于,这样做有什么风险?

    我觉得这是不应该做的事情,因为我无法找到任何特定的Django命令来完成它。 South有一个重置,但现在django迁移只有壁球......

1 个答案:

答案 0 :(得分:0)

只要所有您的安装在删除迁移时是最新的,删除旧迁移就没有任何害处。唯一的缺点是,一旦删除它们就不能轻易回到数据库历史状态,但除了旧备份文件之外,你不应该使用它。

正如我所指出的那样,只需确保每个使用您项目的人都是最新的(或者在删除之前给他们指示提交,以便他们可以在升级到HEAD之前进行迁移,如果您使用的是源版本控制)

如果您正在开发第三方应用程序,它将使安装更复杂(处理--fake参数,无论您是要升级还是安装......)但这不是您的情况。