ai_member_xiaoxi/scripts/parse_table.py
2026-04-02 08:00:01 +08:00

88 lines
4.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

def parse_pg_table(file_path, output_file):
current_table = None
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines()
for line in lines:
line = line.strip()
if not line or 'table_name' in line or 'column_name' in line:
continue
parts = [p.strip() for p in line.split('|')]
if len(parts) < 4:
continue
table_name, column_name, data_type, is_nullable = parts[:4]
if table_name != current_table:
if current_table is not None:
output_file.write('\n')
output_file.write(f'### {table_name}\n')
output_file.write('【表用途注释:】\n')
output_file.write('| 字段名 | 数据类型 | 注释 |\n')
output_file.write('|--------|----------|------|\n')
current_table = table_name
output_file.write(f'| {column_name} | {data_type} | |\n')
def parse_mysql_table(file_path, output_file):
current_table = None
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines()
for line in lines:
line = line.strip()
if not line or 'TABLE_NAME' in line or 'COLUMN_NAME' in line:
continue
parts = [p.strip() for p in line.split('\t')]
if len(parts) < 4:
continue
table_name, column_name, data_type, is_nullable = parts[:4]
if table_name != current_table:
if current_table is not None:
output_file.write('\n')
output_file.write(f'### {table_name}\n')
output_file.write('【表用途注释:】\n')
output_file.write('| 字段名 | 数据类型 | 注释 |\n')
output_file.write('|--------|----------|------|\n')
current_table = table_name
output_file.write(f'| {column_name} | {data_type} | |\n')
with open('/root/.openclaw/workspace/数据库表结构总览_完整版.md', 'w', encoding='utf-8') as f:
f.write('# 瓦拉英语业务数据库表结构总览(完整版)\n')
f.write('## 使用说明\n')
f.write('- 每个表开头的【表用途注释】行可填写该表的业务用途说明\n')
f.write('- 每个字段的【注释】列可填写该字段的业务含义说明\n')
f.write('- 所有空注释位置均可直接编辑补充\n')
f.write('---\n')
f.write('## 一、线上PostgreSQL库正式环境用户行为数据\n')
f.write('- **地址:** bj-postgres-16pob4sg.sql.tencentcdb.com:28591\n')
f.write('- **库名:** vala_bi\n')
f.write('- **权限:** 只读\n')
f.write('---\n')
parse_pg_table('/root/.openclaw/workspace/pg_online_full.txt', f)
f.write('\n---\n')
f.write('## 二、测试PostgreSQL库测试环境行为数据\n')
f.write('- **地址:** bj-postgres-642mcico.sql.tencentcdb.com:21531\n')
f.write('- **库名:** vala_bi\n')
f.write('- **权限:** 只读\n')
f.write('---\n')
parse_pg_table('/root/.openclaw/workspace/pg_test_full.txt', f)
f.write('\n---\n')
f.write('## 三、线上MySQL库线上版本配置/订单/用户数据)\n')
f.write('- **地址:** bj-cdb-dh2fkqa0.sql.tencentcdb.com:27751\n')
f.write('- **权限:** 只读\n')
f.write('---\n')
parse_mysql_table('/root/.openclaw/workspace/mysql_online_full.txt', f)
f.write('\n---\n')
f.write('## 四、测试MySQL库测试环境配置/用户数据)\n')
f.write('- **地址:** bj-cdb-8frbdwju.sql.tencentcdb.com:25413\n')
f.write('- **权限:** 只读\n')
f.write('---\n')
parse_mysql_table('/root/.openclaw/workspace/mysql_test_full.txt', f)
f.write('\n---\n')
f.write('## 五、线上Elasticsearch正式环境服务日志\n')
f.write('- **地址:** es-7vd7jcu9.public.tencentelasticsearch.com:9200\n')
f.write('- **协议:** https\n')
f.write('- **权限:** 只读\n')
f.write('【说明】ES为日志存储索引结构可根据查询需求单独补充说明\n')
f.write('---\n')
f.write('## 六、测试Elasticsearch测试环境服务日志\n')
f.write('- **地址:** es-o79jsx9i.public.tencentelasticsearch.com:9200\n')
f.write('- **协议:** https\n')
f.write('- **权限:** 只读\n')
f.write('【说明】ES为日志存储索引结构可根据查询需求单独补充说明\n')
print('生成完成!')