Alembic 迁移和启动装配
前面已经有配置、数据库、路由、异常、JWT。
最后要把项目装配完整,并用 Alembic 管理表结构。
一、初始化 Alembic
在项目根目录执行:
生成:
二、让 Alembic 使用项目配置
默认 alembic.ini 会维护一份数据库地址。企业项目建议统一从 .env 的 DATABASE_URL 读取。
alembic/env.py 关键修改:
关键点:
三、导入所有模型
app/models/__init__.py:
以后新增模型,例如 Post,也要在这里导入:
否则 Alembic 自动生成迁移时可能看不到新模型。
四、生成和执行迁移
首次建表:
以后修改表结构:
常用命令:
如果数据库表已经手动存在,并且结构和当前模型一致,可以先标记版本:
不要没检查就直接对生产数据库执行自动生成的迁移文件。
五、应用工厂装配
app/main.py:
注册顺序建议:
- 创建
FastAPI。 - 配置 OpenAPI 和文档。
- 注册异常处理器。
- 注册中间件。
- 注册路由。
- 定义根路径或健康检查。
六、顶层路由聚合
app/api/router.py:
app/api/routes/system_routes.py:
app/controllers/health_controller.py:
健康检查建议放到 JWT 白名单里:
七、本地启动入口
可以直接启动:
也可以创建根目录 main.py,做更友好的本地启动提示:
运行:
八、从零搭建步骤总览
uv init my-fastapi- 安装 FastAPI、SQLAlchemy、Alembic、PyJWT、Pydantic Settings。
- 创建
app/分层目录。 - 写
.env.example和.gitignore。 - 写
core/config.py。 - 写
db/base.py、db/session.py。 - 写
core/response.py、schemas/response_schema.py。 - 写
core/exceptions.py并在create_app()注册。 - 写
models/user.py。 - 初始化 Alembic,生成并执行迁移。
- 写
core/security.py。 - 写登录注册的 schema、service、controller、routes。
- 写
AuthMiddleware和get_current_user。 - 写业务模块,例如用户列表。
- 启动服务,先调用登录接口,再用 Token 调试受保护接口。
九、上线前检查
到这里,一个标准 MVC 分层的 FastAPI 后端项目就搭起来了。

