在 FastAPI 启动时运行 Alembic 迁移

问题描述 投票:0回答:1

我每次 FastAPI 应用程序启动时都尝试运行 Alembic 迁移。我正在使用 Docker 容器部署我的 FastAPI 应用程序。

这是我为实现此目的而实现的代码:

from alembic.config import Config
from alembic import command

def run_migrations():
    alembic_cfg = Config("alembic.ini")
    command.upgrade(alembic_cfg, "head")

@app.on_event("startup")
async def startup_event():
    run_migrations()

但是,我面临一个问题,一旦启动完成,Docker 容器就会停止。此外,我注意到记录器更改为 Alembic 而不是 FastAPI。

我想了解如何确保迁移成功运行而不停止容器并同时维护 FastAPI 日志记录。任何见解或建议将不胜感激。

fastapi alembic
1个回答
0
投票

我也被困在同一个地方。就我而言,运行 alembic 升级时出现错误。它没有显示在日志中。它会默默地终止程序,从而导致 fastapi 服务器停止。

尝试手动运行alembic升级头命令或在调用升级时增加详细程度,您将会知道错误。

© www.soinside.com 2019 - 2024. All rights reserved.