111 lines
2.9 KiB
Bash
Executable File
111 lines
2.9 KiB
Bash
Executable File
#!/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}"
|
||
|