#!/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 flnxi-material || echo -e "${RED}容器未运行${NC}" echo "" echo "最近的日志:" docker logs --tail 20 flnxi-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 flnxi-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}"