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
AbstractOperationsOperationsOperations.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()
BatchOperationsBatchOperations.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 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
AddColumnAlterColumnAlterTableColumnCommentColumnDefaultColumnNameColumnNullableColumnTypeComputedColumnDefaultDropColumnIdentityColumnDefaultRenameTableadd_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()DefaultImplImplMetaParams- MySQL
 - MS-SQL
 - Postgresql
 - SQLite
 
 
 - Changelog
- 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