2015-09-11 104 views
1

我在我的項目中使用了django 1.8,它似乎沒有創建驗證模型。我已經應用了授權遷移並獲得了;未創建Django驗證模型

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' 
    } 
} 
.... 

使用其中的MySQL數據庫用於現有用戶認證2個的數據庫連接PM。這個想法是在新應用程序的mysql數據庫上使用已經存在的用戶。

+0

'應用auth.0001_initial ...好吧'這告訴我創建驗證表。或者你的意思是它不存在於數據庫本身中?你有沒有嘗試創建一個用戶? –

+0

嘗試創建用戶會導致錯誤,請參閱我的編輯。 – michaelmwangi

+0

嘗試「python manage.py createsuperuser」 – Gaurav

回答

0

我已經通過刪除數據庫路由器最終解決了這個問題。這是因爲在我的應用程序中,如上所述,我將auth請求路由到另一個已存在的數據庫。

,使得運行

python manage.py sqlmigrate auth 000_initial 

生產和空的SQL語句。 卸下從設置分貝路由器CONFIG通過運行

python manage.py migrate auth 

產生「SQL語句」因此下游應用進行的遷移沒有問題進行。

1

嘗試使用默認遷移命令手動遷移您的auth應用程序。

python manage.py migrate auth 
python manage.py migrate 

希望這有助於。

+0

我仍然得到相同的應用auth.0001_initial ...確定 但該表未在數據庫中創建。 – michaelmwangi