我正在尝试迁移我的自定义用户模型,并运行makemigrations
命令对新模型进行迁移。但当我运行migrate命令时,它会抛出以下错误:
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency accounts.0001_initial on database 'default'.
回溯:
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 "C:\Users\AHMED\anaconda3\envs\dotesrow\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
utility.execute()
File "C:\Users\AHMED\anaconda3\envs\dotesrow\lib\site-packages\django\core\management\__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\AHMED\anaconda3\envs\dotesrow\lib\site-packages\django\core\management\base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\AHMED\anaconda3\envs\dotesrow\lib\site-packages\django\core\management\base.py", line 371, in execute
output = self.handle(*args, **options)
File "C:\Users\AHMED\anaconda3\envs\dotesrow\lib\site-packages\django\core\management\base.py", line 85, in wrapped
res = handle_func(*args, **kwargs)
File "C:\Users\AHMED\anaconda3\envs\dotesrow\lib\site-packages\django\core\management\commands\migrate.py", line 95, in handle
executor.loader.check_consistent_history(connection)
File "C:\Users\AHMED\anaconda3\envs\dotesrow\lib\site-packages\django\db\migrations\loader.py", line 302, in check_consistent_history
raise InconsistentMigrationHistory(
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency accounts.0001_initial on database
'default'.
型号.py
class User(auth.models.AbstractUser):
current_balance = models.IntegerField(("current balance"),default=0,blank=True)
age = models.IntegerField(("age"),null=True)
gender = models.CharField(("gender"), max_length=50,choices=GENDER_CHOICES,null=True)
nationality = models.CharField(("nationality"), max_length=50,null=True)
def __str__(self):
return "@{}".format(self.username)
我刚才在这个问题中提到了用户模型,但如果需要更多的代码,请告诉我,我将用这些信息更新我的问题。多谢各位
如果您使用的是git之类的版本控制工具,只需恢复迁移中的更改即可。但如果没有,您可以清除迁移历史,如here所述
它建议使用
python manage.py dbshell
连接到数据库,然后使用select * from django_migrations where app='admin';
查看迁移历史。 然后找到0001迁移的id并按如下方式删除:delete from django_migrations where id=<some_id>;
,其中some_id
是迁移id删除所有迁移文件夹还删除db.sqlite3,然后运行
python manage.py makemigrations
和python manage.py migrate
相关问题 更多 >
编程相关推荐