我有一个用django编写的应用程序,正在尝试运行。这是配置的摘录:
elif STAGE == 'TEST':
DEBUG = False
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'username',
'USER': 'dbname',
'PASSWORD': 'passwd',
'HOST': 'localhost',
'PORT': '',
}
}
else:
DEBUG = True
REGISTRATION_ENABLED = True
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, '../../location'
if STAGE == 'STAGING'
else 'db.sqlite3'),
}
}
当我将STAGE设置为TEST时,我根本无法使用manage.py,因为任何尝试运行它的原因(即使./manage.py都带有没有参数也会给我一个错误:
Traceback (most recent call last):
File "/project_location/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
psycopg2.ProgrammingError: relation "auth_group" does not exist
LINE 1: ...ELECT "auth_group"."id", "auth_group"."name" FROM "auth_grou...
现在,当我将STAGE设置为TEST以外的任何东西时,它都可以正常工作,但是不使用我希望它使用的postgres。已安装Postgres,创建了数据库,并可以使用用户名和密码登录到该数据库。 这里有什么问题,我该如何解决?
答案 0 :(得分:0)
好的,结果是应用程序中有错误。它被编程为捕获为sqlite抛出的OperationalError,但是没有捕获为postgresql抛出的ProgrammingError。如果有人感兴趣,那么有一个github问题可以更深入地描述问题: https://github.com/jazzband/django-sortedm2m/issues/31