diff --git a/build.sh b/build.sh index f4c2601..95b0198 100755 --- a/build.sh +++ b/build.sh @@ -109,14 +109,22 @@ PY echo "==> [6/9] per-module install: ① json2ddl建表 ② json/build.sh ③ wwwroot软链 ④ 数据导入" for m in ${BUSINESS_MODULES}; do echo " -- ${m}" - # ① 建表:模块 models 是唯一事实源;json2ddl 输出 DROP+CREATE,每次部署权威重建 - (cd "pkgs/${m}/models" && "${VENV}/bin/json2ddl" mysql .) > "/tmp/${m}_ddl.sql" \ - || { echo "ERROR: ${m} json2ddl failed" >&2; exit 1; } - [ -s "/tmp/${m}_ddl.sql" ] || { echo "ERROR: ${m} DDL empty" >&2; exit 1; } - mysql -h "${DB_HOST}" -P "${DB_PORT}" -u "${DB_USER}" -p"${DB_PASSWORD}" "${DB_NAME}" \ - < "/tmp/${m}_ddl.sql" || { echo "ERROR: ${m} create tables failed" >&2; exit 1; } - # ② CRUD 页面(模块仓库自带 json/build.sh) - (cd "pkgs/${m}/json" && bash build.sh) || { echo "ERROR: ${m} json/build.sh failed" >&2; exit 1; } + # ① 建表:模块 models 是唯一事实源;无 models/ 的纯引擎模块跳过 + if [ -d "pkgs/${m}/models" ]; then + (cd "pkgs/${m}/models" && "${VENV}/bin/json2ddl" mysql .) > "/tmp/${m}_ddl.sql" \ + || { echo "ERROR: ${m} json2ddl failed" >&2; exit 1; } + [ -s "/tmp/${m}_ddl.sql" ] || { echo "ERROR: ${m} DDL empty" >&2; exit 1; } + mysql -h "${DB_HOST}" -P "${DB_PORT}" -u "${DB_USER}" -p"${DB_PASSWORD}" "${DB_NAME}" \ + < "/tmp/${m}_ddl.sql" || { echo "ERROR: ${m} create tables failed" >&2; exit 1; } + else + echo " (no models/, skip DDL)" + fi + # ② CRUD 页面(模块仓库自带 json/build.sh);无 json/ 跳过 + if [ -d "pkgs/${m}/json" ]; then + (cd "pkgs/${m}/json" && bash build.sh) || { echo "ERROR: ${m} json/build.sh failed" >&2; exit 1; } + else + echo " (no json/, skip CRUD gen)" + fi # ③ wwwroot 软链(非 cp) ln -sfn "../pkgs/${m}/wwwroot" "wwwroot/${m}" # ④ 初始化数据(有 data/*.xlsx 才导)