Alembic
Alembic is a free, self-hosted database migration tool for projects built with SQLAlchemy.
What Alembic is
Alembic is a free, self-hosted database migration tool for projects built with SQLAlchemy. It creates, manages and invokes relational database change scripts, with a migration environment kept alongside the project's source code. Autogeneration compares a database schema with application metadata to produce a candidate migration; users need to review and edit that draft. Alembic can generate SQL migration scripts without running them against a database, useful for workflows where DDL access is restricted. For SQLite, batch operations work around limited ALTER TABLE support by copying data into a newly structured table and replacing the old one. The documented dialects include PostgreSQL, MySQL, MariaDB, SQLite and Microsoft SQL Server. It supports Python 3.10 and newer and requires SQLAlchemy 2.0.0 or newer; installation is available through pip. Autogeneration does not reliably identify table or column renames, and offline SQL generation will not work for migration scripts that require client/server database access, such as pulling rows with SELECT. Alembic is developed by Mike Bayer as part of the SQLAlchemy project and is licensed under MIT terms.
Good
- Keeps migration scripts with project source code
- Can generate offline SQL scripts
- SQLite batch operations handle limited ALTER TABLE support
- Supports several documented database dialects
Watch out
- Requires Python 3.10 or newer and SQLAlchemy 2.0.0 or newer
- Autogeneration may miss table and column renames
- Offline SQL generation cannot handle migrations needing database access
Who it suits
Alembic suits Python developers maintaining relational database changes in SQLAlchemy projects. It is also relevant where teams need generated SQL scripts instead of direct database execution.
Verdict
Alembic provides migration scripting for SQLAlchemy projects, including candidate generation and offline SQL output. Plan to review generated migrations manually, especially around renames and scripts that require database access.
Plans and prices
From Alembic's own pricing page, checked 3 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Alembic | Free | Open-source software under the MIT license |
The facts
Each one read from Alembic's own pages, with the date it was checked.
What it does
- Autogenerate
- Alembic compares database schema with application metadata to generate candidate migration scripts that users review and edit by hand.checked 3 Oct 2026
- Autogenerate limitation
- Autogenerate does not reliably identify table or column renames and its candidate migrations must be manually reviewed and corrected.checked 3 Oct 2026
- Database ecosystem
- Alembic uses SQLAlchemy and database drivers, and its documentation describes PostgreSQL, MySQL, MariaDB, SQLite, and Microsoft SQL Server dialect implementations.checked 3 Oct 2026
- Installation
- Alembic can be installed with pip and is commonly installed in a project-local Python virtual environment.checked 3 Oct 2026
- License
- The repository license grants permission to use, copy, modify, distribute, and sell the software, subject to its stated conditions.checked 3 Oct 2026
- Maintainer
- Alembic is developed by Mike Bayer and is part of the SQLAlchemy project.checked 3 Oct 2026
- Migration scripts
- A project's migration environment is created once and maintained with its source code.checked 3 Oct 2026
- Offline limitation
- Migration scripts that need client/server database access, such as pulling rows with SELECT, will not work in offline SQL generation mode.checked 3 Oct 2026
- Offline SQL
- Alembic can generate SQL scripts for migrations instead of running them against a database, including for workflows where DDL access is restricted.checked 3 Oct 2026
- Python support
- Alembic supports Python 3.10 and newer and requires SQLAlchemy 2.0.0 or newer.checked 3 Oct 2026
- SQLite migrations
- Batch operations support SQLite's limited ALTER TABLE capabilities by copying data into a newly structured table and replacing the old table.checked 3 Oct 2026
- Support
- The project directs users to GitHub Discussions for bug and feature discussion and its GitHub issue tracker for bug reports and feature requests.checked 3 Oct 2026
- What it does
- Alembic is a lightweight database migration tool for use with SQLAlchemy and provides tools to create, manage, and invoke relational database change scripts.checked 3 Oct 2026
Alternatives to Alembic
- 1

Atlas
Free planOpen sourceWebAPILinuxmacOS8.3From $39 a month - 2
DeepFilterNet
Free planOpen sourceAPILinuxmacOSSelf-hosted7.6Free plan - 3
pgroll
Free planOpen sourceLinuxmacOSSelf-hostedWindows7.3Free plan - 4

Skeema
Free planLinuxmacOSWindows6.9From $649 a year - 5

Bytebase Enterprise
Free planWebAPISelf-hosted6.8From $20 a month - 6
Sqitch
Free planLinuxmacOSSelf-hostedWindows6.7Free plan
