d740123174
实测从空目录执行 docker compose up -d:33 秒全部服务启动, MySQL 初始化出 95 表、TDengine 建表校验通过。
40 lines
1.3 KiB
Bash
Executable File
40 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# ============================================================
|
|
# TDengine 初始化执行脚本
|
|
#
|
|
# 由 compose 的 tdengine-init 服务调用,在 tdengine 健康后执行一次。
|
|
# 做三件事:
|
|
# 1. 过滤掉 init.sql 里的注释与空行(taos -f 会逐行执行,
|
|
# 注释行会被当成不完整 SQL 报错)
|
|
# 2. 执行建库建表
|
|
# 3. 校验超级表确实存在,缺表则以非零码退出(让 compose 暴露失败)
|
|
# ============================================================
|
|
set -eu
|
|
|
|
echo "[tdengine-init] 准备 SQL(过滤注释与空行)"
|
|
grep -vE '^[[:space:]]*(--|$)' /init/init.sql > /tmp/init.sql
|
|
echo "[tdengine-init] 待执行语句数:$(wc -l < /tmp/init.sql)"
|
|
|
|
echo "[tdengine-init] 执行建库建表"
|
|
taos -h tdengine -f /tmp/init.sql
|
|
|
|
echo "[tdengine-init] 校验超级表"
|
|
missing=0
|
|
for pair in "iotlcm_daily:t_sim_card_usage_daily" "iotlcm_monthly:t_sim_card_usage_monthly"; do
|
|
db=${pair%%:*}
|
|
stable=${pair##*:}
|
|
if taos -h tdengine -s "show ${db}.stables;" 2>/dev/null | grep -q "$stable"; then
|
|
echo " OK ${db}.${stable}"
|
|
else
|
|
echo " MISS ${db}.${stable}"
|
|
missing=1
|
|
fi
|
|
done
|
|
|
|
if [ "$missing" -ne 0 ]; then
|
|
echo "[tdengine-init] 失败:超级表缺失,请检查 taos 输出"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[tdengine-init] 完成"
|