2011-09-05 38 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认证系统...