Django / Google Cloud:致命:数据库 <db> 不存在 / 服务器错误 500

ste*_*pin 2 python django postgresql google-cloud-platform

我有一个 django 应用程序,它在本地运行良好,但是当我将它部署到谷歌云时会引发服务器错误 500。它在 flex 引擎上,我按照这些非常好的说明进行了设置。

它告诉我数据库不存在。(确实如此。)

已解决:我没有意识到实例和数据库之间存在差异。实例存在但数据库不存在。我在实例中创建了数据库,现在一切正常。

{
 insertId:  "s=81237568d9204e6081d81087faf41900;i=162cc;b=0ca68bbe363d49a581ec4e2fc6c45487;m=799aa9bfc;t=57529446a6708;x=4f176b686e1cb7ce-0@a1"  
 logName:  "projects/rcg-live/logs/cloudsql.googleapis.com%2Fpostgres.log"  
 receiveTimestamp:  "2018-09-06T00:49:51.309738251Z"  
 resource: {…}  
 severity:  "ALERT"  
 textPayload:  "FATAL:  database "rcg-live-db" does not exist"  
 timestamp:  "2018-09-06T00:49:45.486088Z"  
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用云 sql 代理工具连接本地应用程序时,我遇到了同样的错误:

Traceback (most recent call last):
  File "/anaconda3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 216, in ensure_connection
    self.connect()
  File "/anaconda3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 194, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/anaconda3/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 174, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/anaconda3/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL:  database "rcg-live-db" does not exist
Run Code Online (Sandbox Code Playgroud)

settings.py 看起来像这样:

DATABASES = {
'default': {
  'ENGINE': 'django.db.backends.postgresql',
  'HOST': os.environ['DB_HOST'],
  'PORT': os.environ['DB_PORT'],
  'NAME': os.environ['DB_NAME'],
  'USER': os.environ['DB_USER'],
  'PASSWORD': os.environ['DB_PASSWORD']
}
Run Code Online (Sandbox Code Playgroud)

}

并且我确定 app.yaml 文件配置正确......它正在查找密钥并且当我更改它时首次亮相设置响应,两者都由 app.yaml 控制

我不确定我可以在这里放什么来表明我的云上存在一个名为“rcg-live-db”的 postgres 数据库,所以我想相信我的话。

同样,一切都在本地运行,包括管理页面。当我尝试使用远程数据库时出现所有 500 个错误。

ste*_*pin 7

已解决:我没有意识到实例和数据库之间存在差异。

实例存在但数据库不存在。

我在实例中创建了数据库,现在一切正常。