django 迁移错误(在数据库'default'上的依赖帐户.0001_initial之前应用迁移)

bprjcwpo  于 2022-12-14  发布在  Go
关注(0)|答案(3)|浏览(124)

我试图迁移我的自定义用户模型,我运行makemigrations命令来迁移新模型。但是当我运行migrate命令时,它抛出了以下错误:
raise不一致迁移历史(django.db.migrations.exceptions.不一致迁移历史:迁移admin.0001_initial在其依赖帐户.0001_initial之前应用于数据库'default'。
追溯:

Traceback (most recent call last):
  File "C:\Users\enosh\venv_ruling\ruling\manage.py", line 22, in <module>
    main()
  File "C:\Users\enosh\venv_ruling\ruling\manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "C:\Users\enosh\venv_ruling\lib\site-packages\django\core\management\__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "C:\Users\enosh\venv_ruling\lib\site-packages\django\core\management\__init__.py", line 413, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\enosh\venv_ruling\lib\site-packages\django\core\management\base.py", line 354, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Users\enosh\venv_ruling\lib\site-packages\django\core\management\base.py", line 398, in execute
    output = self.handle(*args, **options)
  File "C:\Users\enosh\venv_ruling\lib\site-packages\django\core\management\base.py", line 89, in wrapped
    res = handle_func(*args, **kwargs)
  File "C:\Users\enosh\venv_ruling\lib\site-packages\django\core\management\commands\migrate.py", line 95, in handle
    executor.loader.check_consistent_history(connection)
  File "C:\Users\enosh\venv_ruling\lib\site-packages\django\db\migrations\loader.py", line 306, in check_consistent_history

型号.py

from django.contrib.auth.models import AbstractUser

class CustomUser(AbstractUser):
    """extend usermodel"""

    class Meta:
        verbose_name_plural = 'CustomUser'

我刚才在这个问题中提到了用户模型,但是如果需要更多的代码,请告诉我,我会用这些信息更新我的问题。谢谢

5us2dqdw

5us2dqdw1#

1.删除数据库
1.从所有应用程序中删除pycache和迁移
1.确保已设置AUTH_USER_MODEL
1.进行迁移

j91ykkif

j91ykkif2#

我只是想我可能会把我的经验与此-作为一个Postgres菜鸟。
在www.example.com中使用带有OPTIONS子句的Postgressettings.py

DATABASES = {
    'default': {
...
        'OPTIONS': {
            'options': '-c search_path=main,dev'
....
        },

我并不清楚Postgres是否按顺序搜索 * 那些模式中的表 *。
因此,如果您希望执行干净的、第一次的初始迁移到“main”模式-请确保之前没有在模式“dev”中进行过迁移。
“main”中的当前迁移将失败,因为它在“dev”中发现不匹配的迁移数据

axr492tv

axr492tv3#

有时可以使用--fake来排除项目中的假迁移

python manage.py migrate --fake

相关问题