stock-ai-agent/update.sh
2026-02-07 18:01:59 +08:00

69 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# Stock Agent 更新脚本
# 用于服务器部署更新
set -e
echo "=========================================="
echo " Stock Agent 更新脚本"
echo "=========================================="
# 进入项目目录
cd "$(dirname "$0")"
PROJECT_DIR=$(pwd)
echo "项目目录: $PROJECT_DIR"
# 1. 拉取最新代码
echo ""
echo "[1/4] 拉取最新代码..."
git pull origin main
# 2. 数据库迁移 - 添加 entry_type 列(如果不存在)
echo ""
echo "[2/4] 检查数据库迁移..."
DB_PATH="$PROJECT_DIR/backend/stock_agent.db"
if [ -f "$DB_PATH" ]; then
# 检查 entry_type 列是否存在
if ! sqlite3 "$DB_PATH" "PRAGMA table_info(paper_orders);" | grep -q "entry_type"; then
echo " 添加 entry_type 列..."
sqlite3 "$DB_PATH" "ALTER TABLE paper_orders ADD COLUMN entry_type VARCHAR(10) DEFAULT 'market';"
echo " entry_type 列已添加"
else
echo " entry_type 列已存在"
# 修复可能存在的大写值问题
sqlite3 "$DB_PATH" "UPDATE paper_orders SET entry_type = 'market' WHERE entry_type = 'MARKET';"
sqlite3 "$DB_PATH" "UPDATE paper_orders SET entry_type = 'limit' WHERE entry_type = 'LIMIT';"
echo " entry_type 值已标准化"
fi
else
echo " 数据库文件不存在,将在首次运行时创建"
fi
# 3. 安装/更新依赖(如果需要)
echo ""
echo "[3/4] 检查 Python 依赖..."
if [ -f "$PROJECT_DIR/backend/requirements.txt" ]; then
cd "$PROJECT_DIR/backend"
pip install -r requirements.txt -q
echo " 依赖已更新"
fi
# 4. 重启服务
echo ""
echo "[4/4] 重启服务..."
if command -v pm2 &> /dev/null; then
pm2 restart run_crypto --update-env 2>/dev/null || echo " run_crypto 服务不存在或重启失败"
pm2 restart run_api --update-env 2>/dev/null || echo " run_api 服务不存在或重启失败"
echo ""
echo "服务状态:"
pm2 list
else
echo " PM2 未安装,请手动重启服务"
fi
echo ""
echo "=========================================="
echo " 更新完成!"
echo "=========================================="