2025-12-19 10:12:59 +08:00
|
|
|
|
from config.database import async_engine, AsyncSessionLocal, Base
|
2026-04-14 10:53:22 +08:00
|
|
|
|
from config.migration import run_database_migrations
|
2025-12-19 10:12:59 +08:00
|
|
|
|
from utils.log_util import logger
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def get_db():
|
|
|
|
|
|
"""
|
|
|
|
|
|
每一个请求处理完毕后会关闭当前连接,不同的请求使用不同的连接
|
|
|
|
|
|
|
|
|
|
|
|
:return:
|
|
|
|
|
|
"""
|
|
|
|
|
|
async with AsyncSessionLocal() as current_db:
|
|
|
|
|
|
yield current_db
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-04-14 10:53:22 +08:00
|
|
|
|
async def get_db_session():
|
|
|
|
|
|
"""
|
|
|
|
|
|
获取数据库会话(用于非请求上下文)
|
|
|
|
|
|
|
|
|
|
|
|
:return:
|
|
|
|
|
|
"""
|
|
|
|
|
|
async with AsyncSessionLocal() as current_db:
|
|
|
|
|
|
yield current_db
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-12-19 10:12:59 +08:00
|
|
|
|
async def init_create_table():
|
|
|
|
|
|
"""
|
|
|
|
|
|
应用启动时初始化数据库连接
|
|
|
|
|
|
|
|
|
|
|
|
:return:
|
|
|
|
|
|
"""
|
|
|
|
|
|
logger.info('初始化数据库连接...')
|
|
|
|
|
|
async with async_engine.begin() as conn:
|
|
|
|
|
|
await conn.run_sync(Base.metadata.create_all)
|
|
|
|
|
|
logger.info('数据库连接成功')
|
2026-04-14 10:53:22 +08:00
|
|
|
|
|
|
|
|
|
|
# 执行数据库迁移
|
|
|
|
|
|
logger.info('开始执行数据库迁移...')
|
|
|
|
|
|
await run_database_migrations()
|
|
|
|
|
|
logger.info('数据库迁移完成')
|