python - 将 Django 连接到 Google App Engine 中的 Google CloudSQL Postgres 数据库时出错

标签 python postgresql google-app-engine google-cloud-sql google-app-engine-python

我正在评估将 Google Cloud 和 Google App Engine 用于我们公司的新产品。我正在尝试调整本教程以使用 Postgres 而不是 MySQL:

https://cloud.google.com/python/django/flexible-environment

虽然我能够在本地成功连接到数据库,但当我在生产环境中尝试时,我收到以下 500 错误:

OperationalError at /admin/login/
    could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/cloudsql/<project_name_hidden>:us-central1:<database_id_hidden>/.s.PGSQL.5432"?

为了连接到 Postgres,我对示例项目进行了三处更改。我在 app.yaml 中有这个片段:

beta_settings:
  cloud_sql_instances: <project_name_hidden>:us-central1:<database_id_hidden>

我在 settings.py 中有这个片段:

# [START dbconfig]
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'polls',
        'USER': '<db_user_name_hidden>',
        'PASSWORD': '<db_password_hidden>',
        'PORT': '5432',
    }
}
# In the flexible environment, you connect to CloudSQL using a unix socket.
# Locally, you can use the CloudSQL proxy to proxy a localhost connection
# to the instance
DATABASES['default']['HOST'] = '/cloudsql/<project_name_hidden>:us-central1:<database_id_hidden>'
if os.getenv('GAE_INSTANCE'):
    pass
else:
    DATABASES['default']['HOST'] = '127.0.0.1'
# [END dbconfig]

并有这个 requirements.py:

Django==1.10.6
#mysqlclient==1.3.10
psycopg2==2.7.1
wheel==0.29.0
gunicorn==19.7.0

最佳答案

没关系,Google 似乎修复了一些问题,服务现在可以正常工作了。我想弄清楚到底发生了什么变化......

关于python - 将 Django 连接到 Google App Engine 中的 Google CloudSQL Postgres 数据库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42836927/

相关文章:

postgresql - 使用 pgx 从 Postgres 扫描 PostGIS 点时,接口(interface) {} 是字符串,而不是 []uint8

google-app-engine - 无法为 eclipse (indigo) 安装 google app engine 插件

php - appcfg.py : error: Error parsing app\app. yaml:无法将值 'php55' 分配给属性 'runtime'

python - Hadoop:输出文件具有双输出

python - 使用Python抓取数据时如何避免linkedin安全验证页面?

sql - PostgreSQL 上的语法错误创建没有双引号的表

database-design - 在 PostgreSQL 中存储二进制文件的多个修订版的最有效方法是什么?

node.js - Google Datastore 仍然指向 App Engine 生产数据库而不是本地模拟器

python - 合并某些行不相同的多个数据框

python - 获取多个日期的平均日期 - pandas