迁移错误(在数据库“default”上的依赖项account.0001_initial之前应用迁移)

问题描述 投票:0回答:4

我正在尝试迁移我的自定义用户模型,并运行 makemigrations 命令来迁移新模型。但是当我运行 migrate 命令时它会抛出此错误:

引发不一致的迁移历史记录( django.db.migrations.exceptions.InconsistencyMigrationHistory: 迁移 admin.0001_initial 在其依赖项之前应用 数据库“默认”上的 account.0001_initial。

追溯:

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'

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

python django django-models django-rest-framework deployment
4个回答
0
投票
  1. 删除数据库
  2. 从所有应用程序中删除 pycache 和迁移
  3. 确保您已设置 AUTH_USER_MODEL
  4. 进行迁移

0
投票

我只是想我可以谈谈我作为 Postgres 菜鸟的经验。

将 Postgres 与 settings.py 中的 OPTIONS 子句一起使用

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

我并没有立即意识到 Postgres 按顺序在那些模式中搜索表。 因此,如果您想要对“主”模式进行干净的、首先的初始迁移 - 请确保之前在模式“dev”中没有进行迁移。

“main”中的当前迁移将失败,因为它在“dev”中发现不匹配的迁移数据


0
投票

python manage.py migrate --fake



0
投票
python manage.py makemigrations

然后

python manage.py migrate
    

© www.soinside.com 2019 - 2024. All rights reserved.