Files
iboard/deploy/0.2.1/etl.sh
T

14 lines
1.1 KiB
Bash

#!/bin/bash
# 一次性 ETL: 清空 0.2.1 库 -> 从现网 MariaDB 只读快照导入
# 现网连接串从 iboard 容器环境变量读取 (不回显), 源库仅 SELECT
set -e
cd /app/iboard-0.2.1/deploy/0.2.1
SRC=$(docker inspect iboard --format '{{range .Config.Env}}{{println .}}{{end}}' | grep '^DATABASE_URL=' | cut -d= -f2-)
[ -n "$SRC" ] || { echo '未取到现网 DATABASE_URL'; exit 1; }
echo '--- truncate 0.2.1 库 ---'
docker compose exec -T pg psql -U iboard021 -d iboard021 -c "TRUNCATE TABLE \"User\",\"Project\",\"ProjectMember\",\"BoardColumn\",\"Task\",\"TaskMember\",\"TaskTag\",\"Habit\",\"CheckIn\",\"CheckList\",\"CheckListItem\",\"CheckListTemplate\",\"Article\",\"Strategy\",\"Indicator\",\"IndicatorPoint\",\"News\",\"Alert\",\"ServerNode\",\"ServerNodeHistory\",\"ServiceCheck\",\"Econ_SowInventory\",\"ScraperCache\",\"OilPriceHistory\",\"MihomeAccount\",\"MihomeHome\",\"MihomeDevice\",\"MihomeEnvSample\",\"MihomeEnvHour\" RESTART IDENTITY CASCADE;"
echo '--- etl run ---'
docker compose exec -T -e SRC_DATABASE_URL="$SRC" app node scripts/etl-mariadb-to-pg.mjs