通过 Render,我想使用他们的免费 PostgreSQL 计划来托管我的数据库。我正在使用 Django,但我很困惑该使用什么作为主机。 Render 上的仪表板为我提供了一个外部数据库 url
postgres://{given_username_by_render}:******-a.oregon-postgres.render.com/{database_name}
如果我在数据库设置中使用此链接作为主机
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'name',
'USER': 'username',
'HOST' : 'postgres://{given_username_by_render}:******-a.oregon-postgres.render.com/{database_name}',
'PASSWORD': env('PSGS'),
}
}
我在迁移时遇到此错误。我之前使用过elephantsql,他们给了我一个简单的主机url,比如tiny.db.elephantsql.com,它插入主机名并且它有效,但在使用Render的情况下不起作用
RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default': could not translate host name
"postgres://USER:PASSWORD@EXTERNAL_HOST:PORT/DATABASE"
to address: Unknown server error
我的主要问题是,我在 django 的数据库设置中使用什么作为主机名?还是我做的这一切都是错的?如果您没有渲染经验,那么您能给我推荐一些可以学习此类知识的地方吗?
主持人只是
******-a.oregon-postgres.render.com
,@
之后和/{database_name}
之前的所有内容。
一般来说,URL会有这样的结构:
postgres://{user}:{password}@{host}:{port}/{database}
dj-database-url
使用 URL。如果 Render 为您填充了 DATABASE_URL
环境变量,则该库将开箱即用,只需很少的配置。
您必须插入仪表板连接选项卡中显示的主机名。
但完整主机名是
<YOUR_HOST_NAME>.oregon-postgres.render.com
。
这解决了我的问题。