3 changed files with 162 additions and 0 deletions
@ -0,0 +1,80 @@ |
|||||
|
#!/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" |
||||
|
|
||||
Loading…
Reference in new issue