我有一个应用程序有35个迁移,需要一段时间才能运行(例如在测试之前),所以我想压缩它们。在
squashmigrations
命令将操作从99减少到88,但它仍然远未达到最佳状态。这可能是因为我有多个RunPython
操作阻止Django优化其他操作。所有这些RunPython
操作在压缩的迁移中是无用的,因为数据库是空的。在django1.10中,elidable
参数在这种情况下允许跳过它们,但是仍然存在大量混乱。在
对于压缩的迁移,我的想法是更接近Django生成的初始迁移,因此我的问题是:
是否建议使用新的初始迁移作为长迁移列表的压缩版本?你会怎么做?在
如果您的测试或生产数据库中没有任何重要的数据,您可以使用新的初始迁移,这将是合适的解决方案。在
我用过很多次这个技巧,对我很管用。在
一些想法:
有时,首先需要为一个本地应用程序创建迁移,然后再为所有其他应用程序创建迁移;
为了确保一切正常,您可以在运行
./migrate
之前提交迁移并备份数据库。注意:若要加快测试速度,可以尝试运行内存测试和/或使用sqlite运行测试。在
相关问题 更多 >
编程相关推荐