FastAPI项目数据库迁移工具Alembic
在 FastAPI 项目中,通常会搭配 SQLAlchemy 作为 ORM。如果你的数据库已经存在且有数据,当修改了 models.py 中的表结构后,绝对不能直接删表重建,也不能仅靠 SQLAlchemy 的 Base.metadata.create_all()(因为它只会创建不存在的表,不会修改已存在的表结构)。
业界标准的做法是使用 Alembic 这个数据库迁移工具。
以下是针对你的情况(已有数据库,需要更新表结构)的完整处理流程。分为两种情况:
情况一:你的项目之前还没用过 Alembic
如果你的数据库最初是通过 Base.metadata.create_all(bind=engine) 直接生成的,现在需要引入 Alembic 来管理后续的修改,请严格按照以下步骤操作(核心是 stamp 步骤):
1. 安装 Alembic
在你的 FastAPI 虚拟环境中安装:
pip install alembic