我有一个使用SQLAlchemy(Flask-SQLAlchemy)和Alembic(Flask-Migrate)的Flask应用程序。该应用在Google App Engine上运行。我想使用Google Cloud SQL。
在我的计算机上,我运行python manage.py db upgrade
以对我的本地数据库运行迁移。由于GAE不允许运行任意shell命令,如何在其上运行迁移?
答案 0 :(得分:3)
SQLALCHEMY_DATABASE_URI = 'mysql://user:pw@ip:3306/DBNAME'
答案 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非常适合这样的管理工作)