重置长时间的 Django 迁移
Posted
技术标签:
【中文标题】重置长时间的 Django 迁移【英文标题】:Reset long Django migrations 【发布时间】:2016-11-11 04:30:28 【问题描述】:随着项目的发展,迁移(makemigrations
和 migrate)
都需要越来越长的时间,每次部署都会延迟很多。
Django 让您转到squash them,因此您没有很长的迁移文件列表,但迁移需要相同的时间。
然后我尝试了以下方法:
-
删除我的应用中的所有迁移文件
清理数据库中的
django_migrations
表
运行makemigrations
(为我的应用创建0001_initial
)
运行migrate --fake
(以填充到django_migrations
表)
现在新的迁移速度非常快,但代价是丢失了迁移历史。
所以我的问题是,考虑到这可能类似于 v1.0,并且它是任何其他项目都依赖的独立项目,这样做有什么风险?
我觉得这是不应该做的事情,因为我找不到任何特定的 Django 命令来做这件事。 South
已重置,但现在 django 迁移只有壁球...
【问题讨论】:
如果您不真正关心向后迁移,这将不是问题。 【参考方案1】:只要在您删除迁移时所有您的安装都是最新的,删除旧迁移并没有什么坏处。唯一的缺点是一旦删除它们就不能轻易回到数据库的历史状态,但除了旧的备份文件,你不应该使用它。
正如我所指出的,只要确保使用您项目的每个人之前都是最新的(或者在删除之前给他们指示,以便他们可以在升级到 HEAD 之前进行迁移,如果您使用的是源版本控制) .
如果您正在开发第三方应用程序,这将使安装更加复杂(无论您是升级还是安装,都需要处理 --fake
参数...),但这不是您的情况。
【讨论】:
以上是关于重置长时间的 Django 迁移的主要内容,如果未能解决你的问题,请参考以下文章