You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.5 KiB
80 lines
2.5 KiB
#!/bin/bash
|
|
|
|
# 修复 sqlite3 bindings 问题的脚本
|
|
# 使用方法: chmod +x fix-sqlite3.sh && ./fix-sqlite3.sh
|
|
|
|
set -e
|
|
|
|
echo "🔧 修复 sqlite3 bindings 问题..."
|
|
|
|
# 颜色定义
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# 检查编译工具
|
|
echo -e "${BLUE}📦 检查编译工具...${NC}"
|
|
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
if command -v apt-get &> /dev/null; then
|
|
# Debian/Ubuntu
|
|
if ! command -v python3 &> /dev/null || ! command -v make &> /dev/null || ! command -v g++ &> /dev/null; then
|
|
echo "正在安装编译工具..."
|
|
sudo apt-get update
|
|
sudo apt-get install -y python3 make g++ build-essential
|
|
fi
|
|
elif command -v yum &> /dev/null; then
|
|
# CentOS/RHEL
|
|
if ! command -v python3 &> /dev/null || ! command -v make &> /dev/null || ! command -v g++ &> /dev/null; then
|
|
echo "正在安装编译工具..."
|
|
sudo yum install -y python3 make gcc-c++
|
|
fi
|
|
elif command -v apk &> /dev/null; then
|
|
# Alpine
|
|
if ! command -v python3 &> /dev/null || ! command -v make &> /dev/null || ! command -v g++ &> /dev/null; then
|
|
echo "正在安装编译工具..."
|
|
sudo apk add --no-cache python3 make g++
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# 进入 backend 目录
|
|
cd backend
|
|
|
|
# 停止 PM2 服务(如果正在运行)
|
|
echo -e "${BLUE}⏸️ 停止后端服务...${NC}"
|
|
pm2 stop just-demo-backend 2>/dev/null || true
|
|
|
|
# 删除旧的 sqlite3 模块
|
|
echo -e "${BLUE}🗑️ 清理旧的 sqlite3 模块...${NC}"
|
|
rm -rf node_modules/.pnpm/sqlite3@* 2>/dev/null || true
|
|
rm -rf node_modules/sqlite3 2>/dev/null || true
|
|
|
|
# 重新安装 sqlite3
|
|
echo -e "${BLUE}📦 重新安装 sqlite3...${NC}"
|
|
pnpm rebuild sqlite3 || pnpm install sqlite3 --force
|
|
|
|
# 验证安装
|
|
echo -e "${BLUE}✅ 验证 sqlite3 安装...${NC}"
|
|
if node -e "require('sqlite3')" 2>/dev/null; then
|
|
echo -e "${GREEN}✅ sqlite3 安装成功!${NC}"
|
|
else
|
|
echo -e "${RED}❌ sqlite3 安装失败,请检查错误信息${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 返回根目录
|
|
cd ..
|
|
|
|
# 重启 PM2 服务
|
|
echo -e "${BLUE}🚀 重启后端服务...${NC}"
|
|
pm2 restart just-demo-backend || pm2 start ecosystem.config.js
|
|
|
|
echo ""
|
|
echo -e "${GREEN}🎉 修复完成!${NC}"
|
|
echo ""
|
|
echo "如果问题仍然存在,请尝试:"
|
|
echo " 1. 完全删除 node_modules: rm -rf backend/node_modules"
|
|
echo " 2. 重新安装依赖: cd backend && pnpm install"
|
|
echo " 3. 重启服务: pm2 restart just-demo-backend"
|
|
|
|
|