首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化Django中的压缩迁移

优化Django中的压缩迁移
EN

Stack Overflow用户
提问于 2019-03-06 16:52:18
回答 1查看 323关注 0票数 0

我创建了一个类似于以下内容的压缩Django迁移:

代码语言:javascript
复制
add field "name"
run sql "CREATE FUNCTION x"
add field "age"
remove field "name"
run sql "DROP FUNCTION x"

由于Django不能完全优化两个run sql块之间的代码,因此预计add field "name"remove field "name"不会被优化。但是,我知道这两次SQL运行对任何相关的影响都没有,所以我可以手动删除run sql部件。

手动删除run sql部件之后,是否有任何方法让Django只对结果运行优化步骤?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-18 20:16:03

我编写了一个命令,它使用Django的MigrationOptimizer重写单个迁移文件,特别是针对这个场景。我把它作为要点贴在这里:

https://gist.github.com/jhillacre/7fa8c182dd821387d4cf1fdb9371dcd7

我已经使用python3.6在Django 1.11中测试了这一点。不确定Django 2+是否需要更改。

这些问题包括:

  • 优化器从迁移中移除初始标志。
  • 可交换依赖项被扭曲

我总是区分优化的迁移和原始的迁移,以确保有关initialdependencies的更改被恢复。

或者,您可以在使用RunPythonRunSql elidable参数压缩之前删除这些操作。从医生那里:

可选的可撤销参数确定在压缩迁移时是否会删除(省略)操作。链接

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

https://stackoverflow.com/questions/55028301

复制
相关文章

相似问题

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