Django migrate報錯問題解決方案

2022-09-29 13:48:11 字數 1467 閱讀 2419

python3 manage.py makemigrations # 生成資料庫遷移檔案

python3 manage.py migrate # 遷移資料庫

簡簡單單兩條命令就完成了django的資料庫遷移

但是今天一天的時間都耽誤在這了,一點都不誇張的那種,,早上去公司討論需求之後,研究了一下需要更改一下資料庫,在執行makemigrations的時候ok沒有問題,但是migrate就報錯了

1.報錯: 表已經存在,django.db.utils.operationalerror: (1050, "table xx already exists

我:刪表,但是報錯,cannot delete or update a parent row: a foreign key constraint fails 跟yy表存在外來鍵關係,無法刪除,

百度了一番之後:1、set foreign_key_checks = 0; // 先程式設計客棧設定外來鍵約束檢查關閉

2、drop table xx; // 刪除資料,表或者檢視

3、set foreign_key_checks = 1; // 開啟外來鍵約束檢查,以保持表結構完整性 

2程式設計客棧.表刪了之後重新執行migrate,又報錯別的表存在,如此一直迴圈往復,我都懷疑這是人家寫的乙個while true,

我:找到了第二種解決方案:python manage.py migrate myapp --fake # 切記把myapp換成你要執行的app名稱

這條命令可以順www.cppcns.com利執行,沒有報錯,但是又找不到對應生成的表在**,頂如還是說不能成功

3.將之前執行makemigrations生成的migrations資料夾刪除,重新來過,ok,還是一樣的毛病,

4.重新建立了database之後,重新來過,只生成了django自帶的那幾張表,然而專案裡大多的資料儲存都是依靠我在每乙個app裡建立的table裡呀

5.將每個app下的migrations都刪掉,database也重新來過,好嘛,連最基本的資料庫遷移資料夾都不能生成了,一瞬間有種悔不當初的感覺,但是又能怎麼樣呢,就是需要調整資料庫呀

6.這個時候重頭開始來過,千萬不要慌,檢查settings裡是否把每乙個app都註冊到,專案同名目錄下的__init__.py裡是否包含了

import pymysql

pymysql.install_as_mysqldb()

7.沒有問題之後這樣去執行資料庫遷移的命令 

python3 manage.py migrate # 生成django自帶的資料庫

python3 manage.py makemigrations appname # 將appname換成你要遷移的那個app的名稱

python manage.py migrate appname # 同理,換名

至此,乙個小小的問題,真的就花了我一天的時間,好在終於解決了,

本文標題: django-migrate報錯問題解決方案

本文位址:

django migrate無效的解決方法

遇到乙個很奇怪的問題 就是執行 python manage.py makemigrations的時候顯示要建立兩張表,但是執行 python manage.py migrate的時候不能識別,也就是說失效了,換了乙個新sqlite資料庫就ok了,是資料庫的問題,暫時不知道具體是什麼問題 臨時的解決方...

django migrate無效的解決方法

遇到乙個很奇怪的問題 python manage.py makemigrations的時候顯示要建立兩張表,但是執行 python manage.py migrate的時候不能識別,也就是說失效了,換了乙個新sqlite資料庫就ok了,是資料庫的問題,暫時不知道具體是什麼問題 臨時的解決方法如下 p...

報錯mysql MySQL報錯總結

錯誤一 mysql從cmd使用命令 mysql u root p 啟動報錯,顯示 不能連線到埠 實際埠為3306 這裡的問題實際是由於我沒有設定mysql開機自啟動,所以解決方案就是啟動mysql伺服器 1 我的電腦 管理 服務 找到本機的mysql伺服器 我的是mysql80 然後啟動 可能還需要...