在Google App Engine上运行Alembic迁移

时间:2016-02-14 11:17:51

标签: python google-app-engine flask google-cloud-sql alembic

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

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

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

(例如,Dropwizard通过tasks非常适合这样的管理工作)