#!/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"