fix: 修复数据库初始化顺序问题
- docker-compose 启动时先运行 alembic upgrade head - 优化数据库表不存在时的错误提示
This commit is contained in:
parent
d9cd0d73f9
commit
db3d8fd9f8
|
|
@ -22,12 +22,18 @@ async def lifespan(app: FastAPI):
|
||||||
logger.info("XCodeReviewer 后端服务启动中...")
|
logger.info("XCodeReviewer 后端服务启动中...")
|
||||||
|
|
||||||
# 初始化数据库(创建默认账户)
|
# 初始化数据库(创建默认账户)
|
||||||
|
# 注意:需要先运行 alembic upgrade head 创建表结构
|
||||||
try:
|
try:
|
||||||
async with AsyncSessionLocal() as db:
|
async with AsyncSessionLocal() as db:
|
||||||
await init_db(db)
|
await init_db(db)
|
||||||
logger.info("✓ 数据库初始化完成")
|
logger.info("✓ 数据库初始化完成")
|
||||||
except Exception as e:
|
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("=" * 50)
|
||||||
logger.info("XCodeReviewer 后端服务已启动")
|
logger.info("XCodeReviewer 后端服务已启动")
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ services:
|
||||||
depends_on:
|
depends_on:
|
||||||
db:
|
db:
|
||||||
condition: service_healthy
|
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:
|
networks:
|
||||||
- xcodereviewer-network
|
- xcodereviewer-network
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue