Files
document-server/scripts/restore.sh
Hyungi Ahn 6e01dbdeb3 Fix: 업로드 및 API 연결 문제 해결
- FastAPI 라우터에서 슬래시 문제로 인한 307 리다이렉트 수정
- Nginx 프록시 설정에서 경로 중복 문제 해결
- 계정 관리 시스템 구현 (로그인, 사용자 관리, 권한 설정)
- 노트북 연결 기능 수정 (notebook_id 필드 추가)
- 메모 트리 UI 개선 (수평 레이아웃, 드래그 기능 제거)
- 헤더 UI 개선 및 고정 위치 설정
- 백업/복원 스크립트 추가
- PDF 미리보기 토큰 인증 지원
2025-09-03 15:58:10 +09:00

59 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Document Server 데이터베이스 복원 스크립트
# 시놀로지 NAS 환경에서 사용
if [ $# -eq 0 ]; then
echo "사용법: $0 <백업파일명>"
echo "예시: $0 document_db_20241201_143000.sql.gz"
exit 1
fi
BACKUP_FILE="$1"
BACKUP_DIR="/volume1/docker/document-server/backups"
CONTAINER_NAME="document-server-db"
if [ ! -f "$BACKUP_DIR/$BACKUP_FILE" ]; then
echo "❌ 백업 파일을 찾을 수 없습니다: $BACKUP_DIR/$BACKUP_FILE"
exit 1
fi
echo "⚠️ 주의: 현재 데이터베이스의 모든 데이터가 삭제됩니다!"
read -p "계속하시겠습니까? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "복원이 취소되었습니다."
exit 1
fi
echo "🔄 데이터베이스 복원 시작..."
# 압축 해제 (필요한 경우)
if [[ $BACKUP_FILE == *.gz ]]; then
echo "📦 백업 파일 압축 해제 중..."
gunzip -c "$BACKUP_DIR/$BACKUP_FILE" > "/tmp/restore_temp.sql"
SQL_FILE="/tmp/restore_temp.sql"
else
SQL_FILE="$BACKUP_DIR/$BACKUP_FILE"
fi
# 기존 데이터베이스 삭제 및 재생성
echo "🗑️ 기존 데이터베이스 삭제 중..."
docker exec $CONTAINER_NAME psql -U docuser -d postgres -c "DROP DATABASE IF EXISTS document_db;"
docker exec $CONTAINER_NAME psql -U docuser -d postgres -c "CREATE DATABASE document_db;"
# 백업 복원
echo "📥 데이터베이스 복원 중..."
docker exec -i $CONTAINER_NAME psql -U docuser -d document_db < "$SQL_FILE"
# 임시 파일 정리
if [ -f "/tmp/restore_temp.sql" ]; then
rm "/tmp/restore_temp.sql"
fi
echo "✅ 데이터베이스 복원 완료"
echo "🔄 백엔드 서비스 재시작 중..."
docker restart document-server-backend
echo "🎉 복원 작업 완료"