This sample project shows how I organize a project to use Flask, Flask-SQLAlchemy, and Alembic together. It demonstrates the application factory pattern and is organized using blueprints.
Demonstrating migration generation
I used Alembic to autogenerate a migration and then tweaked the results. If you
want to see autogeneration in action, just delete
alembic/versions/35b593d48d6a_user_models.py, then run
alembic revision --autogenerate -m "user models".
Set up the database
basic_app.config.SQLALCHEMY_DATABASE_URI to what you want. By default
it points to a sqlite file called
app.db in the project folder.
alembic upgrade head to set up the database through migrations.
Or, permform the following from a Python shell.
In : from basic_app import create_app, db In : create_app().app_context().push() In : db.create_all()
alembic stamp head to mark migrations as current.
Created in answer to this question on /r/flask and StackOverflow: