一般模型更改時執行一下兩條指令:
1. python manage.py makemigrations
2. python manage.py migrate
但是我今天是把兩個表通過可視化工具給刪掉了,再執行這兩條語句就不好使了。
情況如下:
爲什麼生成不了新的表格呢?
因爲系統自動生成的有一張表django_migrations專門用來記錄你的python manage.py makeigrations操作的,與項目根目錄下migrations文件夾中的文件是一一對應的。
即如下表:
查看選中表格的內容:
什麼,竟然還有這項記錄!!!
問題就出在這裏!!!
通過可視化工具,將兩條記錄刪掉!!順便把app下的migrations也給刪掉。
再次使用上述兩條指令建表。就可以順利建表啦!!!結果如下:
原理:
你之前已經在其他平臺(如Linux命令行)運行過這些代碼,創建了這些數據表。然後,你把代碼拷貝到eclipse裏面(migrations目錄卻沒有了),修改了代碼,此時執行python manage.py makeigrations,生成新的migrations文件,假設爲0001_initial.py,但是數據表django_migrations中已經有這個記錄了,程序就會判定爲沒有發生更新。所以你把數據庫刪除(其實是把django_migrations表中的記錄刪除了)後,就相當於全新建庫、建表了。