运行 Google App Engine 上的 Alembic 迁移

Run Alembic migrations on Google App Engine

我有一个使用 SQLAlchemy (Flask-SQLAlchemy) 和 Alembic (Flask-Migrate) 的 Flask 应用程序。 Google App Engine 上的应用 运行。我想使用 Google 云 SQL。

在我的机器上,我 运行 python manage.py db upgrade 到 运行 我对本地数据库的迁移。由于 GAE 不允许任意 shell 命令成为 运行,我如何 运行 迁移它?

您可以将 Google 云 SQL 实例的本地计算机 IP 列入白名单,然后 运行 本地计算机上的脚本。

这只是您可以编写的代码运行,因此您可以创建一个管理端点来实现升级:

@app.route('/admin/dbupgrade')
def dbupgrade():
    from flask_migrate import upgrade, Migrate
    migrate = Migrate(app, db)
    upgrade(directory=migrate.directory)
    return 'migrated'

(例如,Dropwizard 通过 tasks 很好地满足了此类管理需求)