【问题标题】:Google App Engine connect to Cloud SQL postgresGoogle App Engine 连接到 Cloud SQL postgres
【发布时间】:2020-06-07 11:07:30
【问题描述】:
我有一个烧瓶应用程序,我可以使用带有 SQLITE DB 的 flask_sqlalchemy 在本地正常运行。
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db'
我现在将其部署到 Google App Engine。
我在 CloudSQL 中创建了一个 postgres 数据库。
如何连接到 cloudsql 数据库?
【问题讨论】:
标签:
python
google-app-engine
flask
sqlalchemy
google-cloud-sql
【解决方案1】:
您没有指定在 App Engine 中使用的是标准环境还是 flex 环境,但通常要将 Cloud SQL Postgres 连接到 App Engine,您可以使用 sqlalchemy 库。
从Public Documentation 中提取的参考代码。完整版可在Cloud Platform GitHub
# The SQLAlchemy engine will help manage interactions, including automatically
# managing a pool of connections to your database
db = sqlalchemy.create_engine(
# Equivalent URL:
# postgres+pg8000://<db_user>:<db_pass>@/<db_name>?unix_sock=/cloudsql/<cloud_sql_instance_name>/.s.PGSQL.5432
sqlalchemy.engine.url.URL(
drivername='postgres+pg8000',
username=db_user,
password=db_pass,
database=db_name,
query={
'unix_sock': '/cloudsql/{}/.s.PGSQL.5432'.format(
cloud_sql_connection_name)
}
),
# ... Specify additional properties here.
# ...
)