在你改動(dòng)了 model.py的內(nèi)容之后執(zhí)行下面的命令:
Python manger.py makemigrations
相當(dāng)于 在該app下建立 migrations目錄,并記錄下你所有的關(guān)于modes.py的改動(dòng),比如0001_initial.py, 但是這個(gè)改動(dòng)還沒有作用到數(shù)據(jù)庫文件
你可以手動(dòng)打開這個(gè)文件,看看里面是什么
在此之后執(zhí)行命令
將該改動(dòng)作用到數(shù)據(jù)庫文件,比如產(chǎn)生table之類
python manage.py makemigrations這個(gè)命令是記錄我們對models.py的所有改動(dòng),并且將這個(gè)改動(dòng)遷移到migrations這個(gè)文件下生成一個(gè)文件例如:0001文件,如果你接下來還要進(jìn)行改動(dòng)的話可能生成就是另外一個(gè)文件不一定都是0001文件,但是這個(gè)命令并沒有作用到數(shù)據(jù)庫,而當(dāng)我們執(zhí)行python manage.py migrate 命令時(shí) 這條命令的主要作用就是把這些改動(dòng)作用到數(shù)據(jù)庫也就是執(zhí)行migrations里面新改動(dòng)的遷移文件更新數(shù)據(jù)庫,比如創(chuàng)建數(shù)據(jù)表,或者增加字段屬性
另外一個(gè)需要注意的是這兩個(gè)命令默認(rèn)情況下是作用于全局,也就是對所有最新更改的models或者migrations下面的遷移文件進(jìn)行對應(yīng)的操作,如果要想僅僅對部分app進(jìn)行作用的話 則執(zhí)行如下命令:
python manage.py makemigrations appname,
python manage.py migrate appname,
如果要想精確到某一個(gè)遷移文件則可以使用:
python manage.py migrate appname 文件名