Django 修改模型生成多份迁移文件是否规范?生产环境如何执行迁移?
Django迁移相关问题解答
操作流程规范性确认
你目前的操作完全是Django官方推荐的标准迁移流程:
- 每次修改模型后执行
python manage.py makemigrations生成对应增量迁移文件 - 再执行
python manage.py migrate把变更同步到数据库
这种按序号递增生成的迁移文件,本质是模型变更的历史记录,作用是保证多开发人员协作、本地与生产环境之间的数据库结构可以精准同步,不需要担心生成文件多有问题。
生产环境迁移操作说明
生产环境部署时直接执行python manage.py migrate即可完成迁移,不需要做额外处理:
- Django会自动读取数据库内的
django_migrations表记录,对比代码里的迁移文件,只会执行还没跑过的新增迁移,已经执行过的历史迁移会直接跳过,不会出现重复执行的问题
小提示:生产环境执行迁移前最好提前备份数据库,避免涉及字段删除、类型修改的迁移操作导致数据丢失。如果后续历史迁移文件太多想要清理,可以等项目版本稳定、所有环境的数据库结构完全同步后,删除所有历史迁移文件重新执行一次
makemigrations生成全新的初始迁移即可,不会影响后续功能使用。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

