You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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全局配置文件。

适配项目配置

  1. 修改alembic.ini文件中的数据库连接地址,示例:

同步连接示例:sqlalchemy.url = postgresql://用户名:密码@localhost/数据库名
异步连接示例:sqlalchemy.url = postgresql+asyncpg://用户名:密码@localhost/数据库名

  1. 修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:54:04