I have a Flask app that uses SQLAlchemy (Flask-SQLAlchemy) and Alembic (Flask-Migrate). The app runs on Google App Engine. I want to use Google Cloud SQL.
On my machine, I run python manage.py db upgrade
to run my migrations against my local database. Since GAE does not allow arbitrary shell commands to be run, how do I run the migrations on it?
It's all just code you can run, so you can create an admin endpoint with which to effect an upgrade:
(Dropwizard, for instance, caters nicely for such admin things via tasks)
You can whitelist the ip of your local machine for the Google Cloud SQL instance, then you run the script on your local machine.
SQLALCHEMY_DATABASE_URI = 'mysql://user:pw@ip:3306/DBNAME'