问题定位
在 Django 框架下开发,自定义了一个用户表想取代框架自动生成的用户表,执行到 migrate
命令同步数据库时出现。错误详情如下
E:\SweetYaya\MyProj01> python manage.py migrate
Traceback (most recent call last):
File "manage.py", line 22, in <module>
main()
File "manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "D:\Program Files\Python36\lib\site-packages\django\core\management\__init__.py", line 419, in execute_from_command_line
utility.execute()
File "D:\Program Files\Python36\lib\site-packages\django\core\management\__init__.py", line 413, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "D:\Program Files\Python36\lib\site-packages\django\core\management\base.py", line 354, in run_from_argv
self.execute(*args, **cmd_options)
File "D:\Program Files\Python36\lib\site-packages\django\core\management\base.py", line 398, in execute
output = self.handle(*args, **options)
File "D:\Program Files\Python36\lib\site-packages\django\core\management\base.py", line 89, in wrapped
res = handle_func(*args, **kwargs)
File "D:\Program Files\Python36\lib\site-packages\django\core\management\commands\migrate.py", line 95, in handle
executor.loader.check_consistent_history(connection)
File "D:\Program Files\Python36\lib\site-packages\django\db\migrations\loader.py", line 310, in check_consistent_history
connection.alias,
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency MyApp.0001_initial on database 'default'.
解决办法
方法1
删库,删除数据库中的所有 auth_
开头和 django_
开头的表,重新执行即可。太粗暴了,不太好。
方法2
- 先
makemigrations
- 打开
settings.py
,注释掉 INSTALL_APPS 中的
'django.contrib.admin',
- 打开
urls.py
,注释掉 urlpatterns 中的 admin - 再
migrate
就不报错了 - 最后注意把注释内容恢复回来就好了