From fc6ba087e91e45fe337c0b275503784ee17cbb6e Mon Sep 17 00:00:00 2001 From: selfrelease Date: Wed, 15 Jul 2026 11:49:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=BF=9C=E7=A8=8BPG=E7=94=A8TCP+?= =?UTF-8?q?=E5=AF=86=E7=A0=81=E8=BF=9E=E6=8E=A5,=20deploy=5Fremote.sh?= =?UTF-8?q?=E7=94=A8su=20postgres+socket?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo/deploy_remote.sh | 44 ++++++++++--------------------------------- deploy.sh | 2 +- 2 files changed, 11 insertions(+), 35 deletions(-) diff --git a/demo/deploy_remote.sh b/demo/deploy_remote.sh index c476b2b..67d5c98 100644 --- a/demo/deploy_remote.sh +++ b/demo/deploy_remote.sh @@ -18,46 +18,22 @@ if [ -z "$PSQL" ]; then exit 1 fi -# 远程环境:PG 15 端口 5432,用 postgres 用户连接 -PSQL_CMD="$PSQL -h 127.0.0.1 -p 5432 -U postgres -d wxchat_sales" +# 远程环境:PG 15 端口 5432,socket 在 /run/postgresql,用 postgres 用户连接 +PG_SOCKET="/run/postgresql" -# 检查连接方式:优先 su postgres,其次直连 -PG_CONN_OK=0 -su - postgres -c "$PSQL -h 127.0.0.1 -p 5432 -d wxchat_sales -c 'SELECT 1'" >/dev/null 2>&1 && PG_CONN_OK=1 - -if [ "$PG_CONN_OK" -eq 0 ]; then - echo "[WARN] postgres 用户连接失败,尝试 root 直连..." - PSQL_CMD="$PSQL -h 127.0.0.1 -p 5432 -d wxchat_sales" -fi - -echo "[INFO] 使用 psql: $PSQL" +echo "[INFO] 使用 psql: $PSQL (socket: $PG_SOCKET)" echo "[INFO] 执行 schema.sql..." -# 执行 schema.sql(幂等,包含迁移语句) -if [ "$PG_CONN_OK" -eq 1 ]; then - su - postgres -c "$PSQL -h 127.0.0.1 -p 5432 -d wxchat_sales -f $DEMO_DIR/db/schema.sql" 2>&1 || { - echo "[WARN] schema.sql 执行有警告,尝试继续..." - } -else - $PSQL_CMD -f "$DEMO_DIR/db/schema.sql" 2>&1 || { - echo "[WARN] schema.sql 执行有警告,尝试继续..." - } -fi +# 执行 schema.sql(幂等,包含迁移语句)— 用 su postgres 通过 socket 连接 +su - postgres -c "$PSQL -h $PG_SOCKET -p 5432 -d wxchat_sales -f $DEMO_DIR/db/schema.sql" 2>&1 || { + echo "[WARN] schema.sql 执行有警告,尝试继续..." +} # 重置序列 -if [ "$PG_CONN_OK" -eq 1 ]; then - su - postgres -c "$PSQL -h 127.0.0.1 -p 5432 -d wxchat_sales -c \"SELECT setval('product_id_seq', COALESCE((SELECT max(id) FROM product), 1), true);\"" 2>/dev/null || true - su - postgres -c "$PSQL -h 127.0.0.1 -p 5432 -d wxchat_sales -c \"SELECT setval('salesperson_id_seq', COALESCE((SELECT max(id) FROM salesperson), 1), true);\"" 2>/dev/null || true -else - $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 -fi +su - postgres -c "$PSQL -h $PG_SOCKET -p 5432 -d wxchat_sales -c \"SELECT setval('product_id_seq', COALESCE((SELECT max(id) FROM product), 1), true);\"" 2>/dev/null || true +su - postgres -c "$PSQL -h $PG_SOCKET -p 5432 -d wxchat_sales -c \"SELECT setval('salesperson_id_seq', COALESCE((SELECT max(id) FROM salesperson), 1), true);\"" 2>/dev/null || true # 验证 -if [ "$PG_CONN_OK" -eq 1 ]; then - PRODUCT_COUNT=$(su - postgres -c "$PSQL -h 127.0.0.1 -p 5432 -d wxchat_sales -t -c 'SELECT count(*) FROM product;'" 2>/dev/null | xargs || echo "0") -else - PRODUCT_COUNT=$($PSQL_CMD -t -c "SELECT count(*) FROM product;" 2>/dev/null | xargs || echo "0") -fi +PRODUCT_COUNT=$(su - postgres -c "$PSQL -h $PG_SOCKET -p 5432 -d wxchat_sales -t -c 'SELECT count(*) FROM product;'" 2>/dev/null | xargs || echo "0") echo "[OK] 产品数量: $PRODUCT_COUNT" echo "[OK] 数据库迁移完成" diff --git a/deploy.sh b/deploy.sh index 919aedb..e85dcab 100644 --- a/deploy.sh +++ b/deploy.sh @@ -56,7 +56,7 @@ ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} " fi # 启动新进程 cd ${REMOTE_DEMO} - DB_HOST=127.0.0.1 DB_PORT=5432 DB_USER=postgres DB_NAME=wxchat_sales \ + DB_HOST=127.0.0.1 DB_PORT=5432 DB_USER=postgres DB_PASSWORD=Why_701208 DB_NAME=wxchat_sales \ nohup /usr/bin/python3 -m uvicorn web.server:app --host 127.0.0.1 --port 8770 \ > ${REMOTE_DEMO}/web.log 2>&1 & sleep 2