繁体   English   中英

未创建Django身份验证模型

[英]Django auth models not being created

我在我的项目中使用django 1.8,似乎没有创建auth模型。 我已经应用了auth迁移,并且得到了;

python manage.py migrate --database=default auth
Operations to perform:
  Apply all migrations: auth
Running migrations:
  Rendering model states... DONE
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK

但是仅创建django_content_type表。 我也在使用Postgres。 谁能给我有关如何解决此问题的建议。 谢谢。

编辑:正在运行;

python manage.py  createsuper 

part of error dump

django.db.utils.ProgrammingError: relation "auth_user" does not exist
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...

编辑

settings.py 
....
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.admin',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
)
 ........

DATABASES = {
    'default': {
        'NAME': 'dbname',
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'USER': 'theuser',
        'PASSWORD': 'thepassword',
        'HOST':'thehost'
    },
    'auth_db': {
        'NAME': 'dbname',
       'ENGINE': 'django.db.backends.mysql',
        'USER': 'otheruser',
        'PASSWORD': 'thepassword',
        'HOST':'thehost'
    }
}
....

我正在使用2个数据库连接,其中mysql数据库用于验证现有用户。 这个想法是在新应用程序的mysql数据库上使用已经存在的用户。

尝试手动迁移您的auth应用,然后尝试迁移默认迁移命令。

python manage.py migrate auth
python manage.py migrate

希望这可以帮助。

我终于通过删除数据库路由器解决了问题。 这是因为在如上所述的应用程序中,我将auth请求路由到另一个已经存在的数据库。

这样的运行

python manage.py sqlmigrate auth 000_initial

产生和清空sql语句。 通过运行以下命令从设置配置中删除数据库路由器

python manage.py migrate auth

生成“ sql语句”,因此可以继续进行下游应用程序的迁移。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM