Python 学习笔记:数据库迁移工具 ‌Alembic

发布时间:2026/10/5 4:07:35
Python 学习笔记:数据库迁移工具 ‌Alembic Alembic是 SQLAlchemy 官方推出的‌轻量级数据库迁移工具‌核心作用是把数据库表结构的变更建表、加列、改类型、加索引等纳入版本控制让你在不同环境开发/测试/生产里能重复、安全地把数据库升级或回滚到指定版本。‌‌为什么需要它直接用Base.metadata.create_all()只能在表不存在时创建‌修改已有表结构不会自动同步‌。 Alembic 把每次结构变更记录成独立的迁移脚本配合 Git 使用团队成员执行一条命令就能同步最新结构出问题也能回滚。快速上手‌安装与初始化‌pip install alembic然后alembic init alembic如果是异步环境则alembic init -t async alembic。会生成alembic.ini配置文件和alembic/目录含env.py、versions/。‌配置数据库连接‌修改alembic.ini里的sqlalchemy.url指向你的数据库地址比如mysqlpymysql://user:passlocalhost/dbname。生产环境不建议硬编码密码可以在env.py里从环境变量读取覆盖这个配置。‌关联模型‌打开alembic/env.py导入你的Base把target_metadata None改成target_metadata Base.metadata。‌这步漏了自动生成的迁移脚本会是空的‌。‌生成迁移脚本‌改完模型后执行alembic revision --autogenerate -m 描述信息Alembic 会对比模型和数据库差异自动生成迁移脚本。‌执行迁移‌alembic upgrade head把数据库升级到最新版本回滚用alembic downgrade -1回滚一个版本或alembic downgrade base全部回滚。‌‌常用命令速查使用建议‌自动生成的脚本必须人工检查‌--autogenerate不是万能的字段重命名、表重命名这类操作它可能识别成“删旧建新”导致数据丢失需要手动改成op.alter_column或op.rename_table。‌已提交的迁移脚本不要修改‌就像不能改 Git 历史一样新变更通过新增迁移脚本实现。‌迁移前先备份数据库‌并在开发或测试环境充分验证后再上生产。‌‌Alembic 在 Flask 里可以配合 Flask-Migrate 使用FastAPI 里直接集成 SQLAlchemy 就能用。整体上手成本不高配置好一次后日常就是“改模型 → 生成脚本 → 执行迁移”三步循环。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询