開發(fā)環(huán)境中隨著模型文件的修改會生成許多 migrations 文件在項目中。
那么這些文件有必要隨著項目同步到部署環(huán)境中嗎?
因?yàn)殚_發(fā)環(huán)境和部署環(huán)境中數(shù)據(jù)庫并不同,那么在部署環(huán)境中執(zhí)行下面這些命令,項目中因?yàn)殚_發(fā)環(huán)境中生成的 migrations 文件會對這些操作帶來什么影響?
python manage.py makemigrations python manage.py migrate`
官方推薦migrations放到版本控制中。
在開發(fā)中可能會生成很多的migrations,我的做法是在提交的時候把migrations全部discard,然后運(yùn)行python manage.py makemigrations`重新生成一份最終版的migrations,如果沒有強(qiáng)迫癥,那么略過我的做法。
PS:python manage.py makemigrations
命令是生成你model中變動對應(yīng)的數(shù)據(jù)庫遷移的文件。python manage.py migrate
是應(yīng)用上述遷移文件。
因?yàn)閙igrations相當(dāng)于你的數(shù)據(jù)庫的版本控制,可以保證開發(fā)環(huán)境跟產(chǎn)品環(huán)境的數(shù)據(jù)庫一致。https://docs.djangoproject.com/en/1.10/topics/migrations/。
產(chǎn)品環(huán)境中因?yàn)榘姹究刂浦杏凶钚绿峤坏膍igrations,所以部署腳本中不需要運(yùn)行python manage.py makemigrations
,直接運(yùn)行python manage.py migrate
就好。