gongxiangp2/apply-upload-fix.sh
2025-10-26 09:11:04 +08:00

111 lines
2.9 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 上传功能修复应用脚本
# 用于快速应用上传错误修复
set -e
echo "=========================================="
echo " 应用上传功能修复"
echo "=========================================="
echo ""
# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# 步骤 1: 检查 Node.js 环境
echo "步骤 1/6: 检查 Node.js 环境..."
if ! command -v node &> /dev/null; then
echo -e "${RED}❌ Node.js 未安装${NC}"
exit 1
fi
echo -e "${GREEN}✅ Node.js 版本: $(node -v)${NC}"
echo ""
# 步骤 2: 安装依赖
echo "步骤 2/6: 检查依赖..."
if [ ! -d "node_modules" ]; then
echo -e "${YELLOW}⏳ 安装依赖...${NC}"
npm install
else
echo -e "${GREEN}✅ 依赖已安装${NC}"
fi
echo ""
# 步骤 3: 重新生成 Prisma Client
echo "步骤 3/6: 重新生成 Prisma Client..."
npx prisma generate
echo -e "${GREEN}✅ Prisma Client 生成完成${NC}"
echo ""
# 步骤 4: 同步数据库
echo "步骤 4/6: 同步数据库 schema..."
npx prisma db push
echo -e "${GREEN}✅ 数据库同步完成${NC}"
echo ""
# 步骤 5: 构建项目(可选)
echo "步骤 5/6: 是否需要构建项目?(生产环境选择 y)"
read -p "构建项目? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo -e "${YELLOW}⏳ 构建项目...${NC}"
npm run build
echo -e "${GREEN}✅ 项目构建完成${NC}"
else
echo -e "${YELLOW}⏭ 跳过构建${NC}"
fi
echo ""
# 步骤 6: Docker 部署(可选)
echo "步骤 6/6: 是否需要重新部署 Docker 容器?"
read -p "重新部署 Docker? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo -e "${YELLOW}⏳ 重新构建 Docker 镜像...${NC}"
docker-compose build
echo -e "${YELLOW}⏳ 重启容器...${NC}"
docker-compose down
docker-compose up -d
echo -e "${GREEN}✅ Docker 容器已重启${NC}"
echo ""
echo "等待容器启动..."
sleep 5
echo "查看容器状态:"
docker ps | grep youyidian-3d-material || echo -e "${RED}容器未运行${NC}"
echo ""
echo "最近的日志:"
docker logs --tail 20 youyidian-3d-material
else
echo -e "${YELLOW}⏭ 跳过 Docker 部署${NC}"
fi
echo ""
# 完成
echo "=========================================="
echo -e "${GREEN} ✅ 修复应用完成!${NC}"
echo "=========================================="
echo ""
echo "📋 后续步骤:"
echo "1. 如果使用开发模式,运行: npm run dev"
echo "2. 如果已部署 Docker,检查日志: docker logs -f youyidian-3d-material"
echo "3. 测试上传功能,验证修复效果"
echo "4. 查看详细文档:"
echo " - 修复总结: cat UPLOAD_FIX_SUMMARY.md"
echo " - 故障排查: cat UPLOAD_TROUBLESHOOTING.md"
echo ""
echo "🔍 测试上传:"
echo " 内网: http://192.168.58.20:4320"
echo " 外网: http://180.97.221.140:2320"
echo ""
echo -e "${GREEN}✅ 完成!${NC}"