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.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