✨ 주요 개선사항: - PDF API 500 에러 수정 (한글 파일명 UTF-8 인코딩 처리) - PDF 뷰어 기능 완전 구현 (PDF.js 통합, 네비게이션, 확대/축소) - 서적별 문서 그룹화 UI 데본씽크 스타일로 개선 - PDF Manager 페이지 서적별 보기 기능 추가 - Alpine.js 로드 순서 최적화로 JavaScript 에러 해결 🎨 UI/UX 개선: - 확장/축소 가능한 아코디언 스타일 서적 목록 - 간결하고 직관적인 데본씽크 스타일 인터페이스 - PDF 상태 표시 (HTML 연결, 서적 분류) - 반응형 디자인 및 부드러운 애니메이션 🔧 기술적 개선: - PDF.js 워커 설정 및 토큰 인증 처리 - 서적별 PDF 자동 그룹화 로직 - Alpine.js 컴포넌트 초기화 최적화
59 lines
1.7 KiB
Bash
Executable File
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 "🎉 복원 작업 완료"
|