python manage.py migrate
在我的django项目上,出现以下错误
Traceback (most recent call last): File "manage.py", line 22, in <module> execute_from_command_line(sys.argv) File "/home/hari/project/env/local/lib/python2.7/site- packages/django/core/management/__init__.py", line 363, in execute_from_command_line utility.execute() File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 355, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv self.execute(*args, **cmd_options) File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 330, in execute output = self.handle(*args, **options) File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 86, in handle executor.loader.check_consistent_history(connection) File "/home/hari/project/env/local/lib/python2.7/site-packages/django/db/migrations/loader.py", line 298, in check_consistent_history connection.alias, django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency account.0001_initial on database 'default'.
我有一个如下的用户模型
class User(AbstractUser): place = models.CharField(max_length=64, null=True, blank=True) address = models.CharField(max_length=128, null=True, blank=True)
那么我该如何解决呢?
数据库中的django_migrations表是导致不一致的原因,仅从本地路径删除所有迁移将不起作用。
您必须从数据库中截断django_migrations表,然后尝试再次应用迁移。它应该可以工作,但是如果不起作用,则再次运行makemigrations,然后进行迁移。
注意:不要忘记备份数据。
由于你使用的是自定义用户模型,因此你可以先注释掉
INSTALLED_APPS = [ ... #'django.contrib.admin', ... ]
在你的Installed_Apps设置中。然后跑
python manage.py migrate.
取消注释后
'django.contrib.admin'