我有一个应用程序,目前有 35 次向南迁移。在设置新部署时(我们经常创建新部署),这些需要一段时间才能完成,并且应用程序正在不断发展 - 添加更多迁移。此外,迁移还包括一些潜在的复杂数据迁移和一些破坏 SQLite3 的自定义迁移(目前这不是一个大问题,因为一切都在 Postgres 上,但能够建立一个快速测试环境很高兴),并且通常只是更多可能出错的事情。
我们所有的部署和开发人员都是最新的,我想清除应用程序的所有迁移并创建一个捕获应用程序当前状态的初始迁移 (0001),然后继续从那里。几年前,我用一个不同的应用程序做到了这一点,效果很好,但后来我忘记了这个过程是什么,也忘记了解释如何做到这一点的博客文章。谁能帮我分解这个过程吗?
我明白了这一点(还不错)。要设置迁移重置,我执行以下操作:
rm <app-dir>/migrations/*
python manage.py schemamigration <app-name> --initial
python manage.py migrate <app-name> 0001 --fake --delete-ghost-migrations
我将更改提交到存储库,然后对于其他地方的每次代码部署,运行:
python manage.py migrate <app-name> 0001 --fake --delete-ghost-migrations
确保在上次迁移到其他地方和重置内容之间没有添加任何新内容,否则新的 0001 迁移将与架构不匹配!
注意事项:请参阅 guettli 的评论(以及我的回复)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)