diff --git a/src/chat/message_receive/chat_stream.py b/src/chat/message_receive/chat_stream.py index 6360928b1..c42654aa3 100644 --- a/src/chat/message_receive/chat_stream.py +++ b/src/chat/message_receive/chat_stream.py @@ -249,7 +249,7 @@ class ChatManager: # 检查数据库中是否存在 async def _db_find_stream_async(s_id: str): async with get_db_session() as session: - return (await session.execute(select(ChatStreams).where(ChatStreams.stream_id == s_id))).scalar() + return (await session.execute(select(ChatStreams).where(ChatStreams.stream_id == s_id))).scalars().first() model_instance = await _db_find_stream_async(stream_id) @@ -396,7 +396,7 @@ class ChatManager: async def _db_load_all_streams_async(): loaded_streams_data = [] async with get_db_session() as session: - for model_instance in (await session.execute(select(ChatStreams))).scalars(): + for model_instance in (await session.execute(select(ChatStreams))).scalars().all(): user_info_data = { "platform": model_instance.user_platform, "user_id": model_instance.user_id, diff --git a/src/common/database/db_migration.py b/src/common/database/db_migration.py index b7f56abd9..aedff3676 100644 --- a/src/common/database/db_migration.py +++ b/src/common/database/db_migration.py @@ -18,7 +18,7 @@ async def check_and_migrate_database(): - 自动为现有表创建缺失的索引。 """ logger.info("正在检查数据库结构并执行自动迁移...") - engine = get_engine() + engine = await get_engine() async with engine.connect() as connection: # 在同步上下文中运行inspector操作 @@ -28,7 +28,7 @@ async def check_and_migrate_database(): inspector = await connection.run_sync(get_inspector) # 在同步lambda中传递inspector - db_table_names = await connection.run_sync(lambda conn: set(inspector.get_table_names(conn))) + db_table_names = await connection.run_sync(lambda conn: set(inspector.get_table_names())) # 1. 首先处理表的创建 tables_to_create = [] @@ -60,7 +60,7 @@ async def check_and_migrate_database(): try: # 检查并添加缺失的列 db_columns = await connection.run_sync( - lambda conn: {col["name"] for col in inspector.get_columns(table_name, conn)} + lambda conn: {col["name"] for col in inspector.get_columns(table_name)} ) model_columns = {col.name for col in table.c} missing_columns = model_columns - db_columns @@ -100,7 +100,7 @@ async def check_and_migrate_database(): # 检查并创建缺失的索引 db_indexes = await connection.run_sync( - lambda conn: {idx["name"] for idx in inspector.get_indexes(table_name, conn)} + lambda conn: {idx["name"] for idx in inspector.get_indexes(table_name)} ) model_indexes = {idx.name for idx in table.indexes} missing_indexes = model_indexes - db_indexes