我正在尝试迁移我的自定义用户模型,并运行 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'
我刚刚在这个问题中提到了用户模型,但如果需要更多代码,请告诉我我将用该信息更新我的问题。谢谢你
我只是想我可以谈谈我作为 Postgres 菜鸟的经验。
将 Postgres 与 settings.py 中的 OPTIONS 子句一起使用
DATABASES = {
'default': {
...
'OPTIONS': {
'options': '-c search_path=main,dev'
....
},
我并没有立即意识到 Postgres 按顺序在那些模式中搜索表。 因此,如果您想要对“主”模式进行干净的、首先的初始迁移 - 请确保之前在模式“dev”中没有进行迁移。
“main”中的当前迁移将失败,因为它在“dev”中发现不匹配的迁移数据
python manage.py migrate --fake
python manage.py makemigrations
然后
python manage.py migrate