fix(build): uapi 表必须先建,rag 的 uapi_seed.sql 才有表可插
原 8b 步骤只生成 rag DDL,pipeline 库无 upapp/uapi/uapiio 表 → 种子导入静默失败(0 行)。 改为循环生成 uapi+rag 两模块 DDL,按 uapi建表→rag建表→配置种子 顺序导入。
This commit is contained in:
parent
f1af8c882f
commit
bcd8f54a9d
31
build.sh
31
build.sh
@ -114,17 +114,22 @@ done
|
|||||||
# pipeline_task has no separate module
|
# pipeline_task has no separate module
|
||||||
mkdir -p wwwroot/pipeline_task
|
mkdir -p wwwroot/pipeline_task
|
||||||
|
|
||||||
# 8b. rag 模块:建 rag_* 表 + 导入 uapi 外部服务配置种子
|
# 8b. uapi + rag 模块建表 + 导入外部服务配置种子
|
||||||
|
# uapi 表(upapp/uapi/uapiio...)必须先建,rag 的 uapi_seed.sql 才有表可插
|
||||||
# rag 表统一 rag_ 前缀,与产线业务表隔离;数据独立于 ragserver(同代码不同宿主,各自的数据)
|
# rag 表统一 rag_ 前缀,与产线业务表隔离;数据独立于 ragserver(同代码不同宿主,各自的数据)
|
||||||
if [ -d "pkgs/rag/models" ] && ls pkgs/rag/models/*.json >/dev/null 2>&1; then
|
for m in uapi rag; do
|
||||||
cd "$cdir/pkgs/rag/models"
|
if [ -d "pkgs/$m/models" ] && ls pkgs/$m/models/*.json >/dev/null 2>&1; then
|
||||||
"$cdir/py3/bin/json2ddl" mysql . > /tmp/pipeline_rag_ddl.sql || {
|
cd "$cdir/pkgs/$m/models"
|
||||||
echo "ERROR: rag json2ddl failed" >&2; cd "$cdir"; exit 1; }
|
"$cdir/py3/bin/json2ddl" mysql . > "/tmp/pipeline_${m}_ddl.sql" || {
|
||||||
if [ ! -s /tmp/pipeline_rag_ddl.sql ]; then
|
echo "ERROR: $m json2ddl failed" >&2; cd "$cdir"; exit 1; }
|
||||||
echo "ERROR: rag DDL empty — check models/*.json (need summary+fields)" >&2
|
if [ ! -s "/tmp/pipeline_${m}_ddl.sql" ]; then
|
||||||
cd "$cdir"; exit 1
|
echo "ERROR: $m DDL empty — check models/*.json (need summary+fields)" >&2
|
||||||
|
cd "$cdir"; exit 1
|
||||||
|
fi
|
||||||
|
cd "$cdir"
|
||||||
fi
|
fi
|
||||||
cd "$cdir"
|
done
|
||||||
|
if [ -f /tmp/pipeline_uapi_ddl.sql ] || [ -f /tmp/pipeline_rag_ddl.sql ]; then
|
||||||
"$cdir/py3/bin/python" - <<'PYEOF'
|
"$cdir/py3/bin/python" - <<'PYEOF'
|
||||||
import sys, os, subprocess
|
import sys, os, subprocess
|
||||||
sys.path.insert(0, os.getcwd())
|
sys.path.insert(0, os.getcwd())
|
||||||
@ -133,7 +138,9 @@ from appPublic.aes import aes_decode_b64
|
|||||||
cfg = getConfig('.', {'workdir': '.'})
|
cfg = getConfig('.', {'workdir': '.'})
|
||||||
kw = cfg.databases['pipeline'].kwargs
|
kw = cfg.databases['pipeline'].kwargs
|
||||||
pwd = aes_decode_b64(cfg.password_key, kw.password)
|
pwd = aes_decode_b64(cfg.password_key, kw.password)
|
||||||
for sqlfile in ['/tmp/pipeline_rag_ddl.sql', 'pkgs/rag/init/uapi_seed.sql']:
|
# 顺序关键:uapi 建表 → rag 建表 → rag 的 uapi 配置种子
|
||||||
|
for sqlfile in ['/tmp/pipeline_uapi_ddl.sql', '/tmp/pipeline_rag_ddl.sql',
|
||||||
|
'pkgs/rag/init/uapi_seed.sql']:
|
||||||
if not os.path.exists(sqlfile):
|
if not os.path.exists(sqlfile):
|
||||||
print(' SKIP (missing): %s' % sqlfile)
|
print(' SKIP (missing): %s' % sqlfile)
|
||||||
continue
|
continue
|
||||||
@ -143,10 +150,10 @@ for sqlfile in ['/tmp/pipeline_rag_ddl.sql', 'pkgs/rag/init/uapi_seed.sql']:
|
|||||||
stdin=f, capture_output=True)
|
stdin=f, capture_output=True)
|
||||||
tag = os.path.basename(sqlfile)
|
tag = os.path.basename(sqlfile)
|
||||||
if r.returncode == 0:
|
if r.returncode == 0:
|
||||||
print(' rag: %s applied' % tag)
|
print(' rag/uapi: %s applied' % tag)
|
||||||
else:
|
else:
|
||||||
err = r.stderr.decode('utf-8', 'replace').strip().split(chr(10))[0]
|
err = r.stderr.decode('utf-8', 'replace').strip().split(chr(10))[0]
|
||||||
print(' WARN rag %s: %s' % (tag, err[:160]))
|
print(' WARN %s: %s' % (tag, err[:160]))
|
||||||
PYEOF
|
PYEOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user