From 9264f78b88e7631c4bc0c9b7c18489f5bbf1181b Mon Sep 17 00:00:00 2001 From: C0d3N1nja97342 <140961537+C0d3N1nja97342@users.noreply.github.com> Date: Mon, 15 Jun 2026 11:00:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E6=9F=A5=E8=AF=A2=E5=92=8C=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=94=B6=E9=9B=86=E6=9C=AA=E5=9C=A8=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E5=86=85=E6=89=A7=E8=A1=8C=E7=9A=84=E7=BC=A9=E8=BF=9B?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build() 方法中第 55-74 行的字段类型查询和字段信息收集逻辑意外地位于 for table in meta_config.tables 循环之外,导致: - 只处理了配置中最后一个表的字段 - 其他表的字段信息完全被跳过 修复:将这部分代码缩进到 for 循环内部,确保每个表都正确查询字段类型和字段取值。 --- app/services/meta_knowledge_service.py | 38 +++++++++++++------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/app/services/meta_knowledge_service.py b/app/services/meta_knowledge_service.py index 4762b04..c69a64c 100644 --- a/app/services/meta_knowledge_service.py +++ b/app/services/meta_knowledge_service.py @@ -52,26 +52,26 @@ async def build(self, config_path: Path): ) table_infos.append(table_info) - # 查询字段类型 - column_types = await self.dw_mysql_repository.get_column_types(table.name) + # 查询字段类型 + column_types = await self.dw_mysql_repository.get_column_types(table.name) - for column in table.columns: - # 查询字段取值示例 - column_values = await self.dw_mysql_repository.get_column_values( - table.name, column.name - ) - # column -> column_info - column_info = ColumnInfo( - id=f"{table.name}.{column.name}", - name=column.name, - type=column_types[column.name], - role=column.role, - examples=column_values, - description=column.description, - alias=column.alias, - table_id=table.name, - ) - column_infos.append(column_info) + for column in table.columns: + # 查询字段取值示例 + column_values = await self.dw_mysql_repository.get_column_values( + table.name, column.name + ) + # column -> column_info + column_info = ColumnInfo( + id=f"{table.name}.{column.name}", + name=column.name, + type=column_types[column.name], + role=column.role, + examples=column_values, + description=column.description, + alias=column.alias, + table_id=table.name, + ) + column_infos.append(column_info) # 保存表信息和字段信息到元数据数据库 async with self.meta_mysql_repository.session.begin():