From db3d8fd9f880105d1eb0c8c9522895ca4d6435b3 Mon Sep 17 00:00:00 2001 From: lintsinghua Date: Fri, 5 Dec 2025 19:31:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=BA=E5=BA=8F=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docker-compose 启动时先运行 alembic upgrade head - 优化数据库表不存在时的错误提示 --- backend/app/main.py | 8 +++++++- docker-compose.yml | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/backend/app/main.py b/backend/app/main.py index ed2c174..79ba86f 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -22,12 +22,18 @@ async def lifespan(app: FastAPI): logger.info("XCodeReviewer 后端服务启动中...") # 初始化数据库(创建默认账户) + # 注意:需要先运行 alembic upgrade head 创建表结构 try: async with AsyncSessionLocal() as db: await init_db(db) logger.info("✓ 数据库初始化完成") except Exception as e: - logger.warning(f"数据库初始化跳过(可能数据库未就绪): {e}") + # 表不存在时静默跳过,等待用户运行数据库迁移 + error_msg = str(e) + if "does not exist" in error_msg or "UndefinedTableError" in error_msg: + logger.info("数据库表未创建,请先运行: alembic upgrade head") + else: + logger.warning(f"数据库初始化跳过: {e}") logger.info("=" * 50) logger.info("XCodeReviewer 后端服务已启动") diff --git a/docker-compose.yml b/docker-compose.yml index c6b3dac..8d11152 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,7 +32,7 @@ services: depends_on: db: condition: service_healthy - command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload + command: sh -c "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload" networks: - xcodereviewer-network