素材阁

Alembic 速查

共 23 条 Alembic 常用命令,涵盖初始化与升级、配置、查看与标记、写迁移、实践。 支持搜索与分类筛选,点击即可复制。

初始化与升级

配合 SQLAlchemy 使用。

命令说明
初始化迁移目录
创建空迁移(手写)
按模型差异自动生成
升级到最新版本
回退一个版本

配置

alembic.ini 与 env.py。

命令说明
数据库地址(也可在 env.py 里从环境变量读取)
指定模型元数据(autogenerate 必需)
脚本目录
指定配置文件

查看与标记

状态维护。

命令说明
查看当前数据库版本
查看迁移历史(含依赖链)
分支与多 head 检查
只标记版本不改结构(接管已有库)
相对与绝对升级

写迁移

升级与回退函数。

命令说明
升级操作
回退操作
加列
创建索引
批处理

实践

团队与生产。

命令说明
纪律
合并分支
部署流程
回滚

使用说明

Alembic 数据库迁移速查:初始化与升级、配置、查看与标记、写迁移、实践;支持搜索与分类筛选,点击即可复制。

  1. 按用途点分类:初始化与升级、配置、查看与标记、写迁移、实践。
  2. 点「命令」列复制,替换迁移名与数据库地址后使用。
  3. 自动生成前先在 env.py 里设置 target_metadata = Base.metadata。
  4. 接管已有数据库用 stamp head 标记版本,避免重复建表。

常见问题

autogenerate 漏字段怎么办?
自动生成只对比模型与库结构,类型变更、重命名等常检测不到,需要手动编辑迁移脚本补上;生成后务必人工检查。
stamp 和 upgrade 有什么区别?
upgrade 会真正执行迁移 SQL 改变库结构;stamp 只是把版本号标记为某值而不执行脚本,用于接管已存在的库。
迁移能回退吗?
可以,用 downgrade 回退到上一个或指定版本,前提是迁移脚本写好了可逆的 downgrade 函数;生产回退前先备份。

延伸阅读

相关工具