export_form_cards.sh 1.5 KB
#!/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"