django 项目中的数据库迁移 migrations 文件在开发环境和部署环境中有必要保持一致吗? 财富值3

2016-10-13 08:46发布

开发环境中随着模型文件的修改会生成许多 migrations 文件在项目中。

那么这些文件有必要随着项目同步到部署环境中吗?

因为开发环境和部署环境中数据库并不同,那么在部署环境中执行下面这些命令,项目中因为开发环境中生成的 migrations 文件会对这些操作带来什么影响?

 python manage.py makemigrations python manage.py migrate` 
5条回答

产品环境中因为版本控制中有最新提交的migrations,所以部署脚本中不需要运行python manage.py makemigrations,直接运行python manage.py migrate就好。

在开发中可能会生成很多的migrations,我的做法是在提交的时候把migrations全部discard,然后运行python manage.py makemigrations`重新生成一份最终版的migrations,如果没有强迫症,那么略过我的做法。

官方推荐migrations放到版本控制中。

PS:
python manage.py makemigrations命令是生成你model中变动对应的数据库迁移的文件。
python manage.py migrate是应用上述迁移文件。

段曼 - 我很好
5楼-- · 2016-10-13 08:39

因为migrations相当于你的数据库的版本控制,可以保证开发环境跟产品环境的数据库一致。https://docs.djangoproject.com/en/1.10/topics/migrations/

一周热门 更多>