Integrate Alembic with Flask.
Project description
Flask-Alembic
Flask-Alembic is a Flask extension that provides a configurable Alembic database migration environment. Supports Flask-SQLAlchemy, Flask-SQLAlchemy-Lite, or plain SQLAlchemy. Supports Alembic's single and multiple database templates.
Pallets Community Ecosystem
[!IMPORTANT]
This project is part of the Pallets Community Ecosystem. Pallets is the open source organization that maintains Flask; Pallets-Eco enables community maintenance of Flask extensions. If you are interested in helping maintain this project, please reach out on the Pallets Discord server.
Basic Usage
You've created a Flask application and some models with Flask-SQLAlchemy. Now start using Flask-Alembic:
from flask_alembic import Alembic
# Intialize the extension
alembic = Alembic()
alembic.init_app(app)
Commands are added to the flask
CLI:
$ flask db --help
$ flask db revision "making changes"
$ flask db upgrade
You can also access Alembic's functionality from Python:
with app.app_context():
# Auto-generate a migration
alembic.revision('making changes')
# Upgrade the database
alembic.upgrade()
# Access the internals
environment_context = alembic.env
Differences from Alembic
- Configuration is taken from
Flask.config
instead ofalembic.ini
andenv.py
. - Engines and model/table metadata are taken from Flask-SQLAlchemy(-Lite) if available, or can be configured manually.
- The migrations are stored directly in the
migrations
folder instead of theversions
folder. - Provides the migration environment instead of
env.py
and exposes Alembic's internal API objects. - Differentiates between CLI commands and Python functions. The functions return revision objects and don't print to stdout.
- Allows operating Alembic at any API level while the app is running, through the exposed objects and functions.
- Adds a system for managing independent migration branches and makes it easier to work with named branches.
- Does not (currently) support offline migrations. I don't plan to work on this but am open to patches.
- Does not (currently) support async engines. I don't plan to work on this but am open to patches.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for flask_alembic-3.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d0cda58518d4332d8563da555bee03107fe2169c7157f61a2e0759d0150209b |
|
MD5 | 3c5555111de737a301d4a7a72bcc1d7d |
|
BLAKE2b-256 | 07329ecc1df856fd6ba96276393d374c8e7592c89bc1e5861c1c66d6a81b68f8 |