export_form_cards.sh
1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env bash
# ============================================================
# export_form_cards.sh —— 导出 1748 张 ERP 表单卡片为 JSONL (GraphRAG 交付物4)
# 每行一个 JSON:{id, moduleId, title, domain, dataSource, execType,
# aiTool, aiScene, upstream, downstream, text}
# text = viw_kg_form_card.sCard,可直接切块灌向量库(Milvus)。
#
# 依赖视图:viw_kg_form_card ← viw_kg_form ← viw_kg_edge_flow ← viw_ai_useful_forms
# 用法: ./export_form_cards.sh [输出文件, 默认 form_cards.jsonl]
# 注意:必须 --no-defaults(本地 ~/.my.cnf 默认指向不存在的库 xlyweberp_saas_ai)。
# group_concat_max_len 提到 1e6 防字段清单截断(最长表单 269 字段)。
# ============================================================
set -euo pipefail
OUT="${1:-form_cards.jsonl}"
DB_ARGS=(--no-defaults -h127.0.0.1 -P33307 -uroot -plocal xlyweberp_saas)
mysql "${DB_ARGS[@]}" --batch --skip-column-names --raw 2>/dev/null <<'SQL' > "$OUT"
SET SESSION group_concat_max_len = 1000000;
SELECT JSON_OBJECT(
'id', sFormId,
'moduleId', sModuleId,
'title', sFormTitle,
'domain', sDomain,
'dataSource', sDataSource,
'execType', sExecType,
'aiTool', bAiTool,
'aiScene', sAiScene,
'upstream', sUpstreamForms,
'downstream', sDownstreamForms,
'text', sCard
)
FROM viw_kg_form_card
ORDER BY sDomain, sFormTitle;
SQL
echo "wrote $(wc -l < "$OUT" | tr -d ' ') form-cards to $OUT"