FLASK-MIGRATE(1) Flask-Migrate FLASK-MIGRATE(1) (NAME) flask-migrate - Flask-Migrate Flask-Migrate Alembic SQLAlchemy Flask . Flask . FLASK-MIGRATE ALEMBIC (WHY USE FLASK-MIGRATE VS. ALEMBIC DIRECTLY?) Flask-Migrate Alembic Flask Flask-SQLAlchemy . Alembic . (INSTALLATION) Flask-Migrate pip: pip install Flask-Migrate (EXAMPLE) Flask-Migrate : from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' db = SQLAlchemy(app) migrate = Migrate(app, db) class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(128)) : $ flask db init migrations . . : $ flask db migrate -m "Initial migration." Alembic . Alembic . Alembic . . : $ flask db upgrade migrate upgrade . migrations upgrade . : $ flask db --help flask FLASK_APP . db command Migrate : migrate = Migrate(app, db, command='migrate') . Flask-Migrate Alembic : o compare_type=True: . o render_as_batch=True: (batch mode) " " (move and copy) ALTER SQLite . . Alembic Migrate . : migrate = Migrate(app, db, render_as_batch=False) (CONFIGURATION CALLBACKS) Alembic . configure . . @migrate.configure def configure_alembic(config): # modify config object return config . . (MULTIPLE DATABASE SUPPORT) Flask-Migrate (binds) Flask-SQLAlchemy . --multidb init : $ flask db init --multidb SQLALCHEMY_BINDS . (COMMAND REFERENCE) Flask-Migrate Migrate . . Flask : from flask_migrate import Migrate migrate = Migrate(app, db) Migrate Flask-SQLAlchemy. Migrate EnvironmentContext.configure() Alembic . Flask Flask-Migrate init_app : from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate db = SQLAlchemy() migrate = Migrate() def create_app(): """Application-factory pattern""" ... ... db.init_app(app) migrate.init_app(app, db) ... ... return app db . : o flask db --help . o flask db list-templates . o flask db init [--multidb] [--template TEMPLATE] [--package] . --multidb Flask-SQLAlchemy . --template . --package Alembic __init__.py migrations versions . o flask db revision [--message MESSAGE] [--autogenerate] [--sql] [--head HEAD] [--splice] [--branch-label BRANCH_LABEL] [--version-path VERSION_PATH] [--rev-id REV_ID] . . Alembic . . o flask db migrate [--message MESSAGE] [--sql] [--head HEAD] [--splice] [--branch-label BRANCH_LABEL] [--version-path VERSION_PATH] [--rev-id REV_ID] revision --autogenerate. . . . o flask db check migrate . . o flask db edit $EDITOR. o flask db upgrade [--sql] [--tag TAG] . revision "head" . o flask db downgrade [--sql] [--tag TAG] . revision -1 . o flask db stamp [--sql] [--tag TAG] . o flask db current [--verbose] . o flask db history [--rev-range REV_RANGE] [--verbose] . . o flask db show . o flask db merge [--message MESSAGE] [--branch-label BRANCH_LABEL] [--rev-id REV_ID] . . o flask db heads [--verbose] [--resolve-dependencies] (heads) . o flask db branches [--verbose] (branch points) . : o --x-arg ARG=VALUE -x ARG=VALUE env.py . o --directory DIRECTORY . migrations . o directory Migrate FLASK_DB_DIRECTORY . o --sql '' (offline) . SQL . o Alembic . Flask-Migrate flask_migrate . : o init(directory='migrations', multidb=False) . o revision(directory='migrations', message=None, autogenerate=False, sql=False, head='head', splice=False, branch_label=None, version_path=None, rev_id=None) . o migrate(directory='migrations', message=None, sql=False, head='head', splice=False, branch_label=None, version_path=None, rev_id=None) . o edit(directory='migrations', revision='head') () $EDITOR . o merge(directory='migrations', revisions='', message=None, branch_label=None, rev_id=None) . . o upgrade(directory='migrations', revision='head', sql=False, tag=None) . o downgrade(directory='migrations', revision='-1', sql=False, tag=None) . o show(directory='migrations', revision='head') . o history(directory='migrations', rev_range=None, verbose=False) . . o heads(directory='migrations', verbose=False, resolve_dependencies=False) (heads) . o branches(directory='migrations', verbose=False) . o current(directory='migrations', verbose=False, head_only=False) . o stamp(directory='migrations', revision='head', sql=False, tag=None) . : o . (logging) alembic.ini Alembic . o API Alembic . (AUTHORS) Miguel Grinberg (COPYRIGHT) 2019, Miguel Grinberg December 15, 2025 FLASK-MIGRATE(1)