为什么我会得到一个“;验证“用户不存在”;运行时出错";“迁移”;关于新创建的django项目;注册redux“;安装了应用程序吗?

为什么我会得到一个“;验证“用户不存在”;运行时出错";“迁移”;关于新创建的django项目;注册redux“;安装了应用程序吗?,django,registration,Django,Registration,给定一个新创建的django项目,其中安装了以下应用程序: INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'registration', ) 第一次运行./manage.py mig

给定一个新创建的django项目,其中安装了以下应用程序:

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'registration',
)
第一次运行./manage.py migrate时,出现以下错误:

Operations to perform:
  Synchronize unmigrated apps: staticfiles, messages, registration
  Apply all migrations: sessions, admin, auth, contenttypes
Synchronizing apps without migrations:
  Creating tables...
    Creating table registration_registrationprofile
    Running deferred SQL...
Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
    output = self.handle(*args, **options)
  File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 179, in handle
    created_models = self.sync_apps(connection, executor.loader.unmigrated_apps)
  File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 317, in sync_apps
    cursor.execute(statement)
  File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/db/utils.py", line 97, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
    return self.cursor.execute(sql)
django.db.utils.ProgrammingError: relation "auth_user" does not exist```
要执行的操作:
同步未迁移的应用程序:静态文件、消息、注册
应用所有迁移:会话、管理、身份验证、内容类型
在不迁移的情况下同步应用程序:
正在创建表。。。
创建表注册\u注册配置文件
正在运行延迟SQL。。。
回溯(最近一次呼叫最后一次):
文件“/manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site packages/django/core/management/__init__;.py”,第338行,从命令行执行
utility.execute()
文件“/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site packages/django/core/management/_init__.py”,第330行,执行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site packages/django/core/management/base.py”,第390行,从_argv运行
self.execute(*args,**cmd_选项)
文件“/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site packages/django/core/management/base.py”,第441行,在execute中
输出=self.handle(*args,**选项)
handle中的文件“/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site packages/django/core/management/commands/migrate.py”,第179行
已创建的\u模型=self.sync\u应用程序(连接、执行器、加载器、未迁移的\u应用程序)
文件“/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site packages/django/core/management/commands/migrate.py”,第317行,在sync_apps中
cursor.execute(语句)
文件“/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site packages/django/db/backends/utils.py”,执行中第79行
返回super(CursorDebugWrapper,self).execute(sql,params)
文件“/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site packages/django/db/backends/utils.py”,执行中的第64行
返回self.cursor.execute(sql,params)
文件“/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site packages/django/db/utils.py”,第97行,在_退出__
6.重新播放(dj_exc_类型、dj_exc_值、回溯)
文件“/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site packages/django/db/backends/utils.py”,执行中的第62行
返回self.cursor.execute(sql)
django.db.utils.ProgrammingError:关系“auth_user”不存在```
Django似乎试图在用户表之前创建注册表


如果我对注册应用程序进行注释并运行“迁移”,然后取消对注册应用程序的注释并再次运行“迁移”,则不会发生此错误。但是,这不是正确的方法,对吗?

我认为您需要运行:

python manage.py syncdb

您可能需要设置一些依赖项?syncdb之后可能不需要

南1型(Django<1.7) 南2型(Django>=1.7)
在更新Django版本后,我得到了这个错误,并修复为运行以下两行:

python manage.py migrate auth
python manage.py migrate

我想应该首先运行auth模型中的auth_user表。

一旦为应用程序创建迁移,它将自动添加必要的依赖项。因此,在本例中,只需运行
/manage.py makemigrations registration

请检查registration/migrations/0001_initial.py文件,您应该会看到如下内容:

dependencies = [
    migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]

这意味着您需要为所有具有任何依赖关系的应用程序创建迁移。

我也遇到了这个问题,通过将旧的注册替换为包含以下内容的注册来解决它:


当您按照Pedro Wagner的建议()进行操作时,可以避免这个问题:

通过运行以下命令,确保您的所有应用都存在初始迁移文件:

manage.py makemigrations my_app
我不仅会为那些依赖auth的人这样做,因为我认为这个问题更普遍

在我看来,这种行为的根本原因似乎是

manage.py makemigrations
不总是创建初始迁移(如果尚未创建),与以下相反:


不幸的是,我无法理解这种不对称的原因。

您尚未迁移您的模型

python manage.py makemigrations我的应用程序名称

适用于mac os


python3 manage.py makemigrations我的应用程序

我想你忘了迁移你的身份验证模型。但是,要做到这一点,只需在终端上键入以下命令

python manage.py migrate 


希望这能解决您在程序中的错误。

Django迁移应该能够指定依赖项来确定顺序,因此
注册
迁移可能会使用
依赖项
身份验证用户
。由于它是一个库,我不确定这里的解决方案是什么。可能是安装的应用程序的顺序?我已经更改了安装的应用程序的顺序,但它不起作用!:(顺便说一句,谢谢。为了“解决”这个问题,我必须为所有应用程序创建所有迁移,然后我启动了一个迁移,它成功了。(佩德罗的asnwer)我也遇到了同样的问题。
python manage.py migrate
在mysql5.6上以正确的顺序首先使用auth迁移所有应用程序,但当我迁移到mysql5.7时,我看到了这个问题。如果manage.py似乎被打包在某个地方,没关系,你仍然可以使用它-#python/usr/lib/python2.7/dist-packages/graphite/manage.py migrate-auth终于,我需要的答案。无数人回答说要运行
managemakemigrations
managemigration
,但这是我第一次看到提到
managemigrateauth
。这是因为我的应用程序使用Django 1.6,现在正在升级到2.0吗?还是这些答案中的大多数都不完整?更多人我需要看看这个答案。经过大量搜索,它解决了我的问题。谢谢。这非常有帮助
manage.py makemigrations my_app
manage.py makemigrations
manage.py makemigrations my_app
python manage.py migrate 
python manage.py migrate auth