我在 AWS 上创建了一个 PostgreSQL 数据库,我想将其用于 Django 项目。
我已经修改了 settings.py 以便它有
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': <db name>,
'USER': <user>,
'PASSWORD': <password>,
'HOST': 'projectdevelopment.foobar.us-east-1.rds.amazonaws.com',
'PORT': '5432',
}
}
我原以为这看起来很简单。除了当我尝试进行迁移时出现此错误:
django.db.utils.OperationalError: could not translate host name "projectdevelopment.foobar.us-east-1.rds.amazonaws.com" to address: nodename nor servname provided, or not known
值 projectdevelopment.foobar.us-east-1.rds.amazonaws.com
已直接从 RDS 控制台端点下的值复制。
我是否缺少设置或配置错误?还是两者兼而有之?
最佳答案
确保服务器已启动并运行 亚马逊的末日。
检查这个 issue
, 他们有同样的问题。
或
尝试使用'ENGINE' = 'django.db.backends.postgresql_psycopg2'
, 检查这个 SO answer
Read: How To Use PostgreSQL with your Django Application on Ubuntu 14.04
或
尝试分配DATABASE_URL
用于将 RDS postgres 连接到您的 django 应用。
DATABASE_URL=postgis://<user>:<password>@<host>:<port>/<db-name>
Note: follow the same syntax for declaring
DATABASE_URL
, check these special characters in above url.
:
between user and password,@
between password and host,:
between host and port,/
between port and db name
并将其分配给 settings.py 中的 DATABASES
DATABASES['default'] = DATABASE_URL
In your case
DATABASE_URL
will be.postgis://
<user>
:<password>
@projectdevelopment.foobar.us-east-1.rds.amazonaws.com
:5432
/<db name>
5432
is a default port used by postgres server
关于django - 连接到 Django 后端的 AWS Postgres 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48313393/