- FastAPI 라우터에서 슬래시 문제로 인한 307 리다이렉트 수정 - Nginx 프록시 설정에서 경로 중복 문제 해결 - 계정 관리 시스템 구현 (로그인, 사용자 관리, 권한 설정) - 노트북 연결 기능 수정 (notebook_id 필드 추가) - 메모 트리 UI 개선 (수평 레이아웃, 드래그 기능 제거) - 헤더 UI 개선 및 고정 위치 설정 - 백업/복원 스크립트 추가 - PDF 미리보기 토큰 인증 지원
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 "🎉 복원 작업 완료"
|