我有一个使用SQLAlchemy(Flask-SQLAlchemy)和Alembic(Flask-Migrate)的Flask应用程序,该应用程序在Google App Engine上运行。我想使用Google Cloud SQL。
在我的机器上,我运行python manage.py db upgrade
来针对本地数据库运行迁移。由于GAE不允许运行任意shell命令,我如何在其上运行这些迁移呢?
我有一个使用SQLAlchemy(Flask-SQLAlchemy)和Alembic(Flask-Migrate)的Flask应用程序,该应用程序在Google App Engine上运行。我想使用Google Cloud SQL。
在我的机器上,我运行python manage.py db upgrade
来针对本地数据库运行迁移。由于GAE不允许运行任意shell命令,我如何在其上运行这些迁移呢?
SQLALCHEMY_DATABASE_URI = 'mysql://user:pw@ip:3306/DBNAME'
这只是可以运行的代码,因此您可以创建一个管理端点来实现升级:
@app.route('/admin/dbupgrade')
def dbupgrade():
from flask_migrate import upgrade, Migrate
migrate = Migrate(app, db)
upgrade(directory=migrate.directory)
return 'migrated'