首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何压制最近的Django移民?

如何压制最近的Django移民?
EN

Stack Overflow用户
提问于 2016-10-13 18:41:10
回答 4查看 49.8K关注 0票数 87

在Django的迁移代码中,有一个squashmigrations命令:“如果可能的话,将app_label的迁移压缩到并包含migration_name到更少的迁移。”

所以,如果你想挤压,比如说,前5次迁移,这会有帮助的。

从一个特定的migration_name开始,最好的方法是什么?

在我目前正在进行的一个项目中,我们添加了5-10个新的迁移文件,就像我们添加了新特性一样。我们将立即部署整个项目,似乎单独运行这些项目将花费太长时间。我想把这个项目的所有迁移压缩到一个迁移中,并测试运行这个迁移的时间。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-10-14 00:53:23

代码语言:javascript
复制
python manage.py squashmigrations <appname> <squashfrom> <squashto>

python manage.py help squashmigrations

https://docs.djangoproject.com/en/dev/topics/migrations/#migration-squashing

这将为您提供更多的粒度控制哪些迁移到压缩,并让您保持一个更干净的提交历史。删除+重新创建所有迁移可能会导致其他问题,如循环依赖关系,具体取决于模型的构造方式。

票数 158
EN

Stack Overflow用户

发布于 2016-10-13 19:13:19

您只需删除迁移文件并再次运行makemigrations即可。如果您有一个使用这些方法的dev部署,则应该将migrate back设置为删除第一个之前的那个。

另外,最好先提交代码,以防出问题。

另外:

稍微复杂的一点是,如果存在自定义RunPython代码,它将不会包含在makemigrations创建的新迁移中。

票数 28
EN

Stack Overflow用户

发布于 2020-10-20 13:38:45

在Django 1.9中引入了南瓜迁移命令

如果您使用的是Django 1.8,则需要

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40028586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档