2011-09-05 71 views
1

每當我運行syncdb命令時,我都會得到很多創建的認證表,但我不包括admin或auth軟件包。以下是它自己創建的表格:當我執行syncdb時,如何阻止django同步某些表?

Creating table auth_permission 
Creating table auth_group_permissions 
Creating table auth_group 
Creating table auth_user_user_permissions 
Creating table auth_user_groups 
Creating table auth_user 
Creating table auth_message 

我不需要這些表格。在我的settings.py文件中,我已經註釋了AuthenticationMiddleware,MessageMiddleware和除django.contrib.sessions和我自己的個人應用程序之外的所有應用程序。有沒有設置的地方,我錯過了,這些表不創建?

這裏是我的INSTALLED_APPS

INSTALLED_APPS = (
'deanproxy.globaltags', 
'deanproxy.blog', 
'deanproxy.auth', 
'deanproxy.twitter', 
# 'django.contrib.auth', 
# 'django.contrib.contenttypes', 
'django.contrib.sessions', 
# 'django.contrib.sites', 
# 'django.contrib.messages', 
#'django.contrib.staticfiles', 
# Uncomment the next line to enable the admin: 
# 'django.contrib.admin', 
# Uncomment the next line to enable admin documentation: 
# 'django.contrib.admindocs', 
) 

編輯:我剛剛意識到,所有這些表都沒有建立,如果我註釋掉我自己的應用程序「deanproxy.auth」。但是,我的認證應用程序不包括任何django認證的東西,它是一個非常非常簡單的認證系統(只是電子郵件和密碼)。看來Django可能會因它的名字而感到困惑......

+0

如果你在'INSTALLED_APPS'中註釋掉'django.contrib.auth',那麼這些表就不會被創建。中間件與它無關。你有沒有嘗試從一個全新的空數據庫? –

+0

是的。我完全殺死了數據庫並重新開始。不知道交易是什麼..我編輯了上面的問題來顯示我的INSTALLED_APPS – intargc

回答

0

我找到了原因。我有一個名爲'auth'的應用程序,它是一個非常簡單的認證系統,與django auth應用程序無關。看來,只要我將'deanproxy.auth'添加到我的INSTALLED_APPS,django就包含了所有這些表。每當我將此應用程序重命名爲其他內容時,這些表格都不再包含在內。我將嘗試追蹤爲什麼這樣做......但是,如果其他人有此問題,只需將您的應用程序命名爲auth以外的其他名稱即可。即使你從你的應用中包含它,它仍然認爲它是django認證系統...

相關問題