Google App Engine Flexi 上 Django 的 Postgres 设置

Postgres settings for Django on Google App Engine Flexi

我正在尝试在 App Engine 柔性环境中使用 postgres 设置 django。

我按照这里的说明操作:https://cloud.google.com/appengine/docs/flexible/python/using-cloud-sql-postgres

我的 Django 设置:

DATABASES = {
    'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': '<db-name>',
            'USER': '<user-name>',
            'PASSWORD': '<password>',
            'HOST': '/cloudsql/<instance-connection-name>,
            'PORT': '5432'
        },
}

app.yaml:

beta_settings:
    cloud_sql_instances: <instance-connection-name>

我得到的错误是:

could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/cloudsql/<instance-connection-name>/.s.PGSQL.5432"?

请帮助正确设置。

问题自行解决。我没有更改我的代码中的任何内容。以下是在 App Engine 柔性环境中使用 postgresql 和 django 的步骤:

https://github.com/GoogleCloudPlatform/python-docs-samples/issues/870

编辑:

您必须启用云 sql api 才能正确获取它 运行。

查看此评论:https://github.com/GoogleCloudPlatform/python-docs-samples/issues/870#issuecomment-298152847

我遇到了类似的问题,结果是我跳过了启用 sqladmin API

要查看这是否是问题所在,您可以检查实例的日志。在顶部附近(在 gunicorn 启动之前)将会出现以下错误:

googleapi: Error 403: Access Not Configured. Cloud SQL Administration API has not been used in project ######## before or it is disabled.

该检查仅在实例首次启动时进行,因此一旦您启用了 API,您需要重新部署或以其他方式重新启动您的实例。许多在其他地方报告此问题的人都在谈论它神奇地自行修复,我猜这些实例已经重新启动了。

如果您打开 api 但它没有帮助尝试更改 Django 中的数据库引擎

'ENGINE': 'django.db.backends.postgresql'

 'ENGINE': 'django.db.backends.postgresql_psycopg2'