Files
wxsales/demo/db/init_db.sh
T
freedakgmail 5926c73ff1 微信营销管理系统 - 益童宝销售管理平台
- 数据库: PostgreSQL schema + 3名销售/21客户/341消息/6成交
- 采集代理: mock_sync.py 模拟微信聊天同步
- AI分析: analyze.py 规则模式 + 千问LLM模式
- 后端: FastAPI 11个API接口
- 前端: 仪表盘/销售列表/客户列表/成交记录/交流分析/录入成交
- 交流分析: 全部客户对话概览 + LLM标准范式对话生成
- 部署: systemd + nginx, 已部署至 sale.all8ai.top
2026-07-14 22:31:29 +08:00

60 lines
1.8 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/sh
set -eu
# ============================================
# 微信营销管理系统 MVP - 数据库初始化
# ============================================
ROOT="$(cd "$(dirname "$0")" && pwd)"
BIN="/usr/local/opt/postgresql@17/bin"
DATA="$ROOT/data"
SOCKET="$ROOT/socket"
LOG="$ROOT/postgres.log"
DBNAME="wxchat_sales"
mkdir -p "$SOCKET"
chmod 700 "$SOCKET"
# 检查 PostgreSQL 17 是否安装
if [ ! -x "$BIN/pg_ctl" ]; then
echo "[ERROR] 未找到 PostgreSQL 17: $BIN/pg_ctl"
echo "请安装: brew install postgresql@17"
exit 1
fi
# 初始化数据目录(仅首次)
if [ ! -f "$DATA/PG_VERSION" ]; then
echo "[INFO] 初始化 PostgreSQL 数据目录..."
"$BIN/initdb" -D "$DATA" --encoding=UTF8 --locale=en_US.UTF-8 \
--auth-local=trust --auth-host=trust
fi
# 启动 PostgreSQL(端口 5434
if ! "$BIN/pg_ctl" -D "$DATA" status >/dev/null 2>&1; then
echo "[INFO] 启动 PostgreSQL (端口 5434)..."
"$BIN/pg_ctl" -D "$DATA" -l "$LOG" \
-o "-p 5434 -h '' -k $SOCKET" start
# 等待就绪
for i in $(seq 1 10); do
if "$BIN/psql" -h "$SOCKET" -p 5434 -d postgres -c "SELECT 1" >/dev/null 2>&1; then
break
fi
sleep 0.5
done
fi
# 创建数据库(幂等)
if ! "$BIN/psql" -h "$SOCKET" -p 5434 -d postgres -c "SELECT 1 FROM pg_database WHERE datname='$DBNAME'" | grep -q 1; then
echo "[INFO] 创建数据库: $DBNAME"
"$BIN/createdb" -h "$SOCKET" -p 5434 "$DBNAME"
fi
# 执行建表 SQL
echo "[INFO] 执行 schema.sql..."
"$BIN/psql" -h "$SOCKET" -p 5434 -d "$DBNAME" -f "$ROOT/schema.sql"
# 验证
COUNT=$("$BIN/psql" -h "$SOCKET" -p 5434 -d "$DBNAME" -t -c "SELECT count(*) FROM salesperson")
echo "[OK] 数据库就绪,销售人员数量: $COUNT"
echo "[OK] 连接方式: $BIN/psql -h $SOCKET -p 5434 -d $DBNAME"