2b0c35220a
- schema.sql: 新增 product 表(positioning/selling_points) + deal 表加 product_id + 序列重置 + ALTER TABLE 迁移 - server.py: 产品 CRUD API + deal 关联 product_id + 仪表盘产品线统计 + 范式对话动态读取产品详情 - index.html: 产品管理页面 + 录入成交产品下拉 + 仪表盘增强 + 范式对话产品选择 + 导航通用化 - run_demo.sh: python 改 python3 + 预置成交关联 product_id - deploy.sh: 一键远程部署脚本(rsync+ssh+重启) - deploy_remote.sh: 远程数据库迁移脚本
51 lines
1.5 KiB
Bash
51 lines
1.5 KiB
Bash
#!/bin/bash
|
|
set -eu
|
|
|
|
# ============================================
|
|
# 远程服务器端部署脚本(由 deploy.sh 调用)
|
|
# 在远程服务器上执行数据库迁移和数据预置
|
|
# ============================================
|
|
|
|
DEMO_DIR="/opt/wxsales/demo"
|
|
|
|
# 查找 psql 路径
|
|
PSQL=""
|
|
for p in /usr/bin/psql /usr/local/bin/psql /usr/pgsql-17/bin/psql /usr/local/pg17/bin/psql; do
|
|
if [ -x "$p" ]; then PSQL="$p"; break; fi
|
|
done
|
|
if [ -z "$PSQL" ]; then
|
|
echo "[ERROR] 未找到 psql"
|
|
exit 1
|
|
fi
|
|
|
|
# 查找 PG socket 目录
|
|
SOCKET_DIR=""
|
|
for d in /var/lib/pgsql/data /opt/wxsales/demo/db/socket /tmp; do
|
|
if [ -S "$d/.s.PGSQL.5434" ]; then SOCKET_DIR="$d"; break; fi
|
|
done
|
|
|
|
# 构建连接参数
|
|
if [ -n "$SOCKET_DIR" ]; then
|
|
PSQL_CMD="$PSQL -h $SOCKET_DIR -p 5434 -d wxchat_sales"
|
|
else
|
|
# 尝试默认连接
|
|
PSQL_CMD="$PSQL -p 5434 -d wxchat_sales"
|
|
fi
|
|
|
|
echo "[INFO] 使用 psql: $PSQL"
|
|
echo "[INFO] 执行 schema.sql..."
|
|
|
|
# 执行 schema.sql(幂等,包含迁移语句)
|
|
$PSQL_CMD -f "$DEMO_DIR/db/schema.sql" 2>&1 || {
|
|
echo "[WARN] schema.sql 执行有警告,尝试继续..."
|
|
}
|
|
|
|
# 重置序列
|
|
$PSQL_CMD -c "SELECT setval('product_id_seq', COALESCE((SELECT max(id) FROM product), 1), true);" 2>/dev/null || true
|
|
$PSQL_CMD -c "SELECT setval('salesperson_id_seq', COALESCE((SELECT max(id) FROM salesperson), 1), true);" 2>/dev/null || true
|
|
|
|
# 验证
|
|
PRODUCT_COUNT=$($PSQL_CMD -t -c "SELECT count(*) FROM product;" 2>/dev/null | xargs || echo "0")
|
|
echo "[OK] 产品数量: $PRODUCT_COUNT"
|
|
echo "[OK] 数据库迁移完成"
|