Django數據庫遷移報錯InconsistentMigrationHistory

Django在執行python manage.py makemigrations的時候一切正常

在這裡插入圖片描述

但是執行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'

在這裡插入圖片描述

原因:Django中有一個原生的User模型類,admin的模型依賴這個模型類,由於前面一個應用中的模型類User繼承瞭AbstractUser類,所以提示這個錯誤。

解決方案一:

  • 把之前數據庫中生成的所有表刪除,重新進行遷移
  • 執行刪庫命令(服務器遠端慎用):drop database [數據庫名]
  • 然後然後重新創建數據庫:create database [數據庫名]

我是以上方案就解決瞭

PS:
因為我是本地測試環境,想怎麼玩都可以
服務器遠端推薦使用方案三

在這裡插入圖片描述

當然有人說是刪除數據庫中除瞭auth_user的其他表,具體都可以嘗試一下

解決方案二:

  • 刪除數據庫中 除瞭auth_user的其他表,然後重新執行數據庫遷移命令。

解決方案三:

服務遠端的話就別執行刪庫跑路命令瞭,解決方案如下:

settings.py文件裡面註釋掉admin app

INSTALLED_APPS = [
    # 'django.contrib.admin',
    ...
]

執行數據庫遷移同步命令:

python manage.py makemigrations
python manage.py migrate

然後取消註釋

INSTALLED_APPS = [
    'django.contrib.admin',
    ...
]

到此這篇關於Django數據庫遷移報錯InconsistentMigrationHistory的文章就介紹到這瞭,更多相關Django數據庫遷移報錯內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: