- 文件上传验证: ModelUploader组件增强、上传API错误处理 - GLTF解析器: 增强节点提取和元数据 - 板材编辑: PanelEditor客户端验证 + panels API服务端验证 - 装配步骤编辑: 修复未使用代码,添加预览按钮 - 装配动画播放: AssemblyPlayer步骤导航边界检查优化 - 分享链接: 完整CRUD API(创建、获取、删除),含验证和过期检查 跳过可选测试任务以加快MVP开发
84 lines
2.3 KiB
Bash
84 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
# ============================================
|
|
# 完整系统备份脚本 (Linux/Mac)
|
|
# ============================================
|
|
# 功能:
|
|
# - 备份 PostgreSQL 数据库
|
|
# - 备份 MinIO 文件存储
|
|
# - 备份关键配置文件 (.env, docker-compose*.yml, prisma/schema.prisma)
|
|
# - 生成本次完整备份的清单 (manifest)
|
|
# 使用:
|
|
# ./scripts/backup-all.sh [备份根目录]
|
|
# 默认为 ./backups/full
|
|
# ============================================
|
|
|
|
set -e
|
|
|
|
BACKUP_ROOT="${1:-./backups/full}"
|
|
TIMESTAMP="$(date +%Y%m%d-%H%M%S)"
|
|
BACKUP_DIR="${BACKUP_ROOT}/${TIMESTAMP}"
|
|
|
|
# 创建目录结构
|
|
mkdir -p "${BACKUP_DIR}/database" "${BACKUP_DIR}/files" "${BACKUP_DIR}/config"
|
|
|
|
echo "========================================"
|
|
echo " 完整系统备份脚本"
|
|
echo "========================================"
|
|
echo "备份根目录: ${BACKUP_ROOT}"
|
|
echo "本次备份目录: ${BACKUP_DIR}"
|
|
echo ""
|
|
|
|
# 1. 备份数据库
|
|
./scripts/backup-db.sh "${BACKUP_DIR}/database"
|
|
|
|
# 2. 备份文件存储 (MinIO)
|
|
./scripts/backup-files.sh "${BACKUP_DIR}/files"
|
|
|
|
# 3. 备份关键配置文件
|
|
CONFIG_TARGET="${BACKUP_DIR}/config"
|
|
|
|
if [ -f .env ]; then
|
|
cp .env "${CONFIG_TARGET}/.env" || true
|
|
fi
|
|
|
|
# 复制 docker-compose 配置
|
|
cp docker-compose*.yml "${CONFIG_TARGET}" 2>/dev/null || true
|
|
|
|
# 复制 Prisma schema
|
|
if [ -f prisma/schema.prisma ]; then
|
|
mkdir -p "${CONFIG_TARGET}/prisma"
|
|
cp prisma/schema.prisma "${CONFIG_TARGET}/prisma/schema.prisma" || true
|
|
fi
|
|
|
|
# 4. 生成简单清单文件
|
|
MANIFEST_FILE="${BACKUP_DIR}/backup-manifest.json"
|
|
|
|
DB_BACKUP_FILE="$(ls -1 "${BACKUP_DIR}/database"/db-backup-*.sql.gz 2>/dev/null | head -n 1)"
|
|
FILES_BACKUP_FILE="$(ls -1 "${BACKUP_DIR}/files"/files-backup-*.tar.gz 2>/dev/null | head -n 1)"
|
|
|
|
cat > "${MANIFEST_FILE}" << EOF
|
|
{
|
|
"timestamp": "$(date -Iseconds)",
|
|
"root": "${BACKUP_DIR}",
|
|
"components": {
|
|
"database": "${DB_BACKUP_FILE##*/}",
|
|
"files": "${FILES_BACKUP_FILE##*/}",
|
|
"config": [
|
|
".env",
|
|
"docker-compose*.yml",
|
|
"prisma/schema.prisma"
|
|
]
|
|
}
|
|
}
|
|
EOF
|
|
|
|
echo ""
|
|
echo "========================================"
|
|
echo " 🎉 完整备份完成"
|
|
echo "========================================"
|
|
echo "备份目录: ${BACKUP_DIR}"
|
|
echo "清单文件: ${MANIFEST_FILE}"
|
|
echo "========================================"
|
|
echo ""
|