Django models檔案模型變更錯誤解決
阿新 • • 發佈:2020-05-12
表結構的修改
1、表結構修改後,原來表中已存在的資料,就會出現結構混亂,makemigrations更新表的時候就會出錯
比如第一次建模型,漏了一個欄位,後來補上了。(經常遇到模型欄位修改)
重新makemigrations,然後報錯
資料庫規則:除了新建表,如果你再次增加欄位,資料庫會有一些自動檢測的東西(比如有沒有預設值,是否允許為空)
如果表中已經有資料,這個欄位還是非空的,且沒有設定預設值,後臺檢測不通過就會報錯。
解決方法(有兩種):
1、新增加的欄位,設定允許為空。生成表的時候,之前資料新增加的欄位就會為空。(null=True允許資料庫中為空,blank=True允許admin後臺中為空)
2、新增加的欄位,設定一個預設值。生成表的時候,之前的資料新增加欄位就會應用這個預設值(default=None,預設值為空)
刪除0001_initial.py,再次makemigrations
接著再往資料庫推送,python3 manage.py migrate
原來是自己在資料庫手動新增過,不是通過django方式的。
於是手賤想刪除表,刪了再次執行,發現沒有變化
刪表有風險,可能誤刪其他表,如果表不多,所以還是新建一個庫,環境乾淨(強迫症啊)
最後完美解決
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。