This commit is contained in:
2026-03-04 01:24:09 +08:00
parent 1ca83248a2
commit 9357a46902
2 changed files with 14 additions and 1 deletions
+8
View File
@@ -67,6 +67,14 @@ class DatabaseManager:
self.is_connected = False self.is_connected = False
logger.info("数据库连接已断开") logger.info("数据库连接已断开")
async def session(self):
"""获取数据库会话的异步上下文管理器"""
if not self.is_connected:
await self.connect()
async with self.async_session() as session:
yield session
async def get_session(self) -> AsyncSession: async def get_session(self) -> AsyncSession:
"""获取数据库会话""" """获取数据库会话"""
if not self.is_connected: if not self.is_connected:
+6 -1
View File
@@ -119,8 +119,13 @@ async def init_database():
await db_manager.connect() await db_manager.connect()
await db_manager.create_tables() await db_manager.create_tables()
async with db_manager.session() as session: async with db_manager.get_session() as session:
perm_map = await init_permissions(session) perm_map = await init_permissions(session)
if perm_map is None:
# Permissions already existed, fetch them from database
result = await session.execute(select(Permission))
perms = result.scalars().all()
perm_map = {perm.code: perm.id for perm in perms}
await init_roles(session, perm_map) await init_roles(session, perm_map)
await create_admin_user(session) await create_admin_user(session)