65 lines
1.8 KiB
Bash
Executable File
65 lines
1.8 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 列已存在,跳过"
|
|
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 "=========================================="
|