FastAPI中是否存在与flask-migrate功能等效的数据库迁移扩展?
FastAPI 对等 flask-migrate 功能的迁移方案
FastAPI 生态中和 flask-migrate 功能对等的工具是 Alembic,flask-migrate 本身就是针对 Flask 框架对 Alembic 做的上层封装,你可以直接使用 Alembic 实现和 flask-migrate 完全一致的 ORM 模型变更自动捕获、增量生成数据库 DDL、版本化迁移的能力。
环境前提
- FastAPI 项目已接入 SQLAlchemy(同步、异步版本均支持)
- 已完成项目所需 ORM 模型定义
安装依赖
执行以下命令安装 Alembic:pip install alembic
如果使用异步驱动连接数据库(比如 PostgreSQL 的 asyncpg),还需要安装对应异步驱动:pip install asyncpg
初始化迁移环境
执行命令初始化迁移配置目录:alembic init alembic
执行完成后,项目根目录会生成alembic配置文件夹和alembic.ini全局配置文件。
适配项目配置
- 修改
alembic.ini文件中的数据库连接地址,示例:
同步连接示例:
sqlalchemy.url = postgresql://用户名:密码@localhost/数据库名
异步连接示例:sqlalchemy.url = postgresql+asyncpg://用户名:密码@localhost/数据库名
- 修改
alembic/env.py文件,将target_metadata参数赋值为你项目中 SQLAlchemy 基类的 metadata 实例,示例:
# 导入你项目里定义的SQLAlchemy基类 from myapp.models import Base target_metadata = Base.metadata
如果使用异步驱动,还需要修改env.py中的run_migrations_online函数适配异步连接逻辑即可。
常用迁移命令(和 flask-migrate 完全对应)
- 自动检测模型变更生成迁移脚本(对应
flask db migrate):alembic revision --autogenerate -m "迁移描述,比如新增用户表手机号字段" - 执行所有未应用的迁移更新数据库(对应
flask db upgrade):alembic upgrade head - 回滚到上一个迁移版本(对应
flask db downgrade):alembic downgrade -1
使用上述流程即可完全复现你之前使用 flask-migrate 的所有能力,无需额外适配框架逻辑。
内容的提问来源于stack exchange,提问作者Goanme
相关产品推荐
相关产品推荐

