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

#!/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"