Welcome to Alembic’s documentation!#
Alembic is a lightweight database migration tool for usage with the SQLAlchemy Database Toolkit for Python.
- Front Matter
- Tutorial
- Auto Generating Migrations
- What does Autogenerate Detect (and what does it not detect?)
- Autogenerating Multiple MetaData collections
- Controlling What to be Autogenerated
- Comparing and Rendering Types
- Applying Post Processing and Python Code Formatters to Generated Revisions
- Running Alembic Check to test for new upgrade operations
- Generating SQL Scripts (a.k.a. “Offline Mode”)
- The Importance of Naming Constraints
- Running “Batch” Migrations for SQLite and Other Databases
- Working with Branches
- Operation Reference
AbstractOperations
Operations
Operations.add_column()
Operations.alter_column()
Operations.bulk_insert()
Operations.create_check_constraint()
Operations.create_exclude_constraint()
Operations.create_foreign_key()
Operations.create_index()
Operations.create_primary_key()
Operations.create_table()
Operations.create_table_comment()
Operations.create_unique_constraint()
Operations.drop_column()
Operations.drop_constraint()
Operations.drop_index()
Operations.drop_table()
Operations.drop_table_comment()
Operations.execute()
Operations.rename_table()
BatchOperations
BatchOperations.add_column()
BatchOperations.alter_column()
BatchOperations.create_check_constraint()
BatchOperations.create_exclude_constraint()
BatchOperations.create_foreign_key()
BatchOperations.create_index()
BatchOperations.create_primary_key()
BatchOperations.create_table_comment()
BatchOperations.create_unique_constraint()
BatchOperations.drop_column()
BatchOperations.drop_constraint()
BatchOperations.drop_index()
BatchOperations.drop_table_comment()
BatchOperations.execute()
- Cookbook
- Building an Up to Date Database from Scratch
- Conditional Migration Elements
- Sharing a Connection across one or more programmatic migration commands
- Replaceable Objects
- Rudimental Schema-Level Multi Tenancy for PostgreSQL, MySQL, Other Databases
- Don’t Generate Empty Migrations with Autogenerate
- Don’t emit DROP INDEX when the table is to be dropped as well
- Don’t generate any DROP TABLE directives with autogenerate
- Apply Custom Sorting to Table Columns within CREATE TABLE
- Don’t emit CREATE TABLE statements for Views
- Run Multiple Alembic Environments from one .ini file
- Print Python Code to Generate Particular Database Tables
- Run Alembic Operation Objects Directly (as in from autogenerate)
- Test current database revision is at head(s)
- Using Asyncio with Alembic
- Data Migrations - General Techniques
- API Details
- Overview
- Runtime Objects
- Configuration
- Commands
- Operation Directives
- Autogeneration
- Script Directory
- DDL Internals
AddColumn
AlterColumn
AlterTable
ColumnComment
ColumnDefault
ColumnName
ColumnNullable
ColumnType
ComputedColumnDefault
DropColumn
IdentityColumnDefault
RenameTable
add_column()
alter_column()
alter_table()
drop_column()
format_column_name()
format_server_default()
format_table_name()
format_type()
quote_dotted()
visit_add_column()
visit_column_default()
visit_column_name()
visit_column_nullable()
visit_column_type()
visit_computed_column()
visit_drop_column()
visit_identity_column()
visit_rename_table()
DefaultImpl
ImplMeta
Params
- MySQL
- MS-SQL
- Postgresql
- SQLite
- Changelog
- 1.14.1
- 1.14.0
- 1.13.3
- 1.13.2
- 1.13.1
- 1.13.0
- 1.12.1
- 1.12.0
- 1.11.3
- 1.11.2
- 1.11.1
- 1.11.0
- 1.10.4
- 1.10.3
- 1.10.2
- 1.10.1
- 1.10.0
- 1.9.4
- 1.9.3
- 1.9.2
- 1.9.1
- 1.9.0
- 1.8.1
- 1.8.0
- 1.7.7
- 1.7.6
- 1.7.5
- 1.7.4
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7.0
- 1.6.5
- 1.6.4
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.8
- 1.5.7
- 1.5.6
- 1.5.5
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.9.10
- 0.9.9
- 0.9.8
- 0.9.7
- 0.9.6
- 0.9.5
- 0.9.4
- 0.9.3
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.10
- 0.8.9
- 0.8.8
- 0.8.7
- 0.8.6
- 0.8.5
- 0.8.4
- 0.8.3
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.7
- 0.7.6
- 0.7.5
- 0.7.4
- 0.7.3
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.7
- 0.6.6
- 0.6.5
- 0.6.4
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6.0
- 0.5.0
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.1
- 0.1.0