【问题标题】: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.
        # ...
    )
    

    【讨论】: