django 在新建數據庫時,出現了數據庫的結構與自己定義的不一致,極度懷疑人生

1.出現錯誤:TypeError: int() argument must be a string, a bytes-like object or a number, not 'datetime.datetime'

2.出現的原因在於在models.py增加了其他的ForeignKey

3.運行python manage.pu makemigrations 時,提示增加默認值,

 

4。根據提示輸入一直錯誤,輸入timezone.now 問題也存在

 

5.此時運行python manage.py migrate 則會出現如題問題

6.此時懷疑時外鍵問題,或者models.py中的models.DateTimeField()類型錯誤,一直註釋相應的代碼調試,問題依然存在,此時距離問題的發現已經有3個小時了,沒有辦法後,打算將關於外鍵的和models.DateTimeField全部註釋掉,且註釋多個model,只留一個model(model即models.py中的類)

7.此時將django 的默認數據庫db.sqlite3中的表:django_migrations 記錄清空,不斷執行python manage.py makemigrations ,根據提示刪除數據庫相應的表(需根據提示按順序刪除),提示語如下圖:

 

8,根據提示刪除所有該刪除的表格後,執行python manage.py makemigrations,發現表格結構,仍然和以前的一模一樣,並沒有根據 我的models.py中的代碼生成數據結構,數據庫結構仍然有被註釋的代碼,此時極度懷疑人生了,且執行了幾遍該問題仍然存在,後來在stackoverflow(鏈接) 一個不起眼的答案中發現了在 項目中有個文件夾爲

9.在這個文件夾中存放着數據庫結構,所以當新建數據庫時這些文件會被再次應用(舊的數據庫結構),恍然大悟爲什麼創建新的數據庫時創建了舊的結構,處理方式是:刪除migrations 文件夾下的所有文件,此時再次新建數據庫就無問題了,同時題目描述的問題也能解決了

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章