Files
xinghuoapi/scripts/backup_database.sh
huangzhenpc d46653b2c2
Some checks failed
CI / test (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
Security Scan / backend-security (push) Has been cancelled
Security Scan / frontend-security (push) Has been cancelled
添加上游同步自动化工具
新增工具脚本:
- scripts/sync-upstream.sh: 主同步脚本,自动从上游拉取并应用配置
- scripts/apply-branding.sh: 自动应用StarFireAPI品牌化修改
- scripts/apply-deploy-config.sh: 自动应用部署配置
- scripts/README.md: 工具使用说明

功能特性:
 自动备份当前分支
 从上游仓库拉取最新代码
 自动应用品牌化修改(Sub2API → StarFireAPI)
 自动应用部署配置(端口、Redis、镜像等)
 智能提示和确认
 支持回滚操作

使用方法:
chmod +x scripts/*.sh
./scripts/sync-upstream.sh

修改 .gitignore 以允许追踪自定义同步工具

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 01:42:21 +08:00

66 lines
1.8 KiB
Bash
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
# StarFireAPI 数据库备份脚本
# 用途:备份 PostgreSQL 数据库
# 使用bash backup_database.sh
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 配置
PROJECT_DIR="/opt/xinghuoapi"
BACKUP_DIR="$PROJECT_DIR/backups"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/starfireapi_backup_${DATE}.sql.gz"
echo -e "${BLUE}=========================================="
echo "💾 StarFireAPI 数据库备份"
echo -e "==========================================${NC}"
echo ""
# 创建备份目录
mkdir -p "$BACKUP_DIR"
# 检查容器是否运行
cd "$PROJECT_DIR/deploy"
if ! docker-compose ps | grep -q "postgres.*Up"; then
echo -e "${RED}❌ PostgreSQL 容器未运行${NC}"
exit 1
fi
echo -e "${YELLOW}📦 开始备份数据库...${NC}"
echo "备份文件: $BACKUP_FILE"
echo ""
# 执行备份
docker exec sub2api-postgres pg_dump -U sub2api sub2api | gzip > "$BACKUP_FILE"
if [ $? -eq 0 ]; then
BACKUP_SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
echo -e "${GREEN}✓ 备份成功!${NC}"
echo "文件大小: $BACKUP_SIZE"
echo "保存位置: $BACKUP_FILE"
echo ""
# 清理旧备份(保留最近 7 天)
echo -e "${YELLOW}🧹 清理旧备份(保留最近 7 天)...${NC}"
find "$BACKUP_DIR" -name "starfireapi_backup_*.sql.gz" -mtime +7 -delete
# 显示所有备份
echo -e "${BLUE}📋 现有备份列表:${NC}"
ls -lh "$BACKUP_DIR"/starfireapi_backup_*.sql.gz 2>/dev/null || echo "无备份文件"
else
echo -e "${RED}❌ 备份失败${NC}"
exit 1
fi
echo ""
echo -e "${BLUE}=========================================="
echo "💡 恢复数据库命令"
echo -e "==========================================${NC}"
echo "gunzip < $BACKUP_FILE | docker exec -i sub2api-postgres psql -U sub2api sub2api"
echo ""