Django在執(zhí)行python manage.py makemigrations
的時候一切正常
![](/d/20211017/54c3e07ca379aea852dee8e737ce3ad2.gif)
但是執(zhí)行python manage.py migrate
提示異常:
raise InconsistentMigrationHistory( django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency user.0001_initial on database 'default'
![](/d/20211017/800678849ef1955a26faedc96e9cc8e8.gif)
原因:Django中有一個原生的User模型類,admin的模型依賴這個模型類,由于前面一個應(yīng)用中的模型類User繼承了AbstractUser類,所以提示這個錯誤。
解決方案一:
- 把之前數(shù)據(jù)庫中生成的所有表刪除,重新進(jìn)行遷移
- 執(zhí)行刪庫命令(服務(wù)器遠(yuǎn)端慎用):
drop database [數(shù)據(jù)庫名]
- 然后然后重新創(chuàng)建數(shù)據(jù)庫:
create database [數(shù)據(jù)庫名]
我是以上方案就解決了
PS:
因為我是本地測試環(huán)境,想怎么玩都可以
服務(wù)器遠(yuǎn)端推薦使用方案三
![](/d/20211017/ceac9f43ec59417396515cef13e52fa7.gif)
當(dāng)然有人說是刪除數(shù)據(jù)庫中除了auth_user的其他表,具體都可以嘗試一下
解決方案二:
- 刪除數(shù)據(jù)庫中 除了auth_user的其他表,然后重新執(zhí)行數(shù)據(jù)庫遷移命令。
解決方案三:
服務(wù)遠(yuǎn)端的話就別執(zhí)行刪庫跑路命令了,解決方案如下:
在settings.py
文件里面注釋掉admin app
INSTALLED_APPS = [
# 'django.contrib.admin',
...
]
執(zhí)行數(shù)據(jù)庫遷移同步命令:
python manage.py makemigrations
python manage.py migrate
然后取消注釋
INSTALLED_APPS = [
'django.contrib.admin',
...
]
到此這篇關(guān)于Django數(shù)據(jù)庫遷移報錯InconsistentMigrationHistory的文章就介紹到這了,更多相關(guān)Django數(shù)據(jù)庫遷移報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Django數(shù)據(jù)庫遷移常見使用方法
- django中的數(shù)據(jù)庫遷移的實現(xiàn)
- 詳解關(guān)于Django中ORM數(shù)據(jù)庫遷移的配置
- 關(guān)于django 數(shù)據(jù)庫遷移(migrate)應(yīng)該知道的一些事