postgresql - 直接在 Google AppEngine 上使用 psycopg2

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

在使用 Google Appengine Flexible + Python 时,如何直接使用 Psycopg2(不使用 SQLAlchemy)访问 CloudSQL PostgreSQL 数据库?

最佳答案

你好 我自己,

解决方法:

  1. 在你的app.yaml中,添加一个环境变量,模仿Google Appengine Flexible Python CloudSQL documentation's SQLAlchemy 的 URI 但没有 psycopg2+ 前缀:
env_variables:
    PSYCOPG2_POSTGRESQL_URI: postgresql://user:password@/databasename?host=/cloudsql/project-name:region:database-instance-name
  1. 在要部署和运行的任何 python 文件中,将该环境变量直接传递给 psycopg2connect 语句。这利用了 psycopg2.connect 将 URI 直接传递给 psql 客户端库的能力(这可能不适用于旧的 PostgreSQL 版本......)。
import os
import psycopg2
conn = psycopg2.connect(os.environ['PSYCOPG2_POSTGRESQL_URI'])
  1. 在本地使用 google 云代理工具时,如果您的本地服务器不知道 app.yaml,请确保先设置 URI 环境变量:
export PSYCOPG2_POSTGRESQL_URI="postgresql://user:password@/databasename?host=/cloudsql/project-name:region:database-instance-name"
./cloud_sql_proxy -instances=project-name:region:database-instance-name=tcp:5432
#somewhat later:
python myserver.py

我希望它对你也有用:)

关于postgresql - 直接在 Google AppEngine 上使用 psycopg2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51061722/

相关文章:

postgresql - SQL 正则表达式量词操作数在 postgres 9.5.16 上无效,适用于 9.6.12

firebase - 无法将 Firestore 用于新项目

google-app-engine - 启动 Dart 托管 VM 时出现 gcloud dev_appserver.py 错误

python - 错误 : Key already exists

python - py2app 与 postgres/psycopg2

postgresql - 如何在 PostgreSQL 9.0(MacPorts 安装)上安装 hstore 模块?

postgresql - Postgres : How to count records with ranged condition?

sql - 查询中的列名

python - 哪个更快?内存缓存还是文件查询? (使用 maxmind geoip.dat 文件)

postgresql - 如何检查值是否在列表中或列表是否为空?