1

我需要将我的django应用程序连接到非Redshift中默认数据库的数据库。当我将它连接到默认数据库时,连接是成功的。当我把它连接到非默认数据库它给出了一个错误信息说连接到Redshift中默认数据库以外的数据库

"django.db.utils.OperationalError: FATAL: database "test" does not exist

DATABASES = { 
    'default': { 
     'NAME': 'test', 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'USER': 'test', 
     'PASSWORD': '######', 
     'HOST': '############.redshift.amazonaws.com', 
     'PORT': #### 
    } 
} 
+0

我使用psycopg2连接到Redshift,它工作正常,所以没有理由为什么这不应该工作,假设数据库存在于该群集上。 尝试使用SQL Workbench等SQL客户端连接到同一个数据库并查看是否面临同样的问题。 – Yankee

回答

0

在PostgreSQL您连接到一个数据库,而不是一个模式。在你的settings.py NAME应该是你想要连接的数据库的名称。 PostgreSQL的默认数据库是postgres

USER是您想要登录的实际PostgreSQL用户。再次默认是postgres

它们是两个分开的东西。您可以以用户postgres的身份登录到PostgreSQL并连接到数据库test

+0

我编辑了这个问题。那是个错误。在上面的场景中,我想要连接的数据库的名称是'test'。在红移中,我已经使用名称'default_one'配置了默认数据库。当我将我的django应用程序连接到'default_one'时,它是成功的。当我连接到'测试'时会引发错误。 – Dilani

+0

测试数据库是否存在?如果是,那么您登录的用户有权访问它? –

+0

是的,数据库存在,用户也可以访问它。 – Dilani