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