| name | db-backup |
| description | PostgreSQL 데이터베이스 백업 및 복원. Docker/로컬 환경 지원. |
Database Backup & Restore Skill
PostgreSQL 데이터베이스를 백업하고 복원합니다.
사용법
/db-backup backup
/db-backup backup --local
/db-backup list
/db-backup restore <file>
/db-backup restore <file> --server
Arguments
| 명령 | 옵션 | 설명 |
|---|
backup | (없음) | Docker 컨테이너 내 DB 백업 |
backup | --local | 로컬 PostgreSQL 백업 (localhost:5434) |
backup | --compressed | 압축 포맷 (.dump) |
list | | 사용 가능한 백업 파일 목록 |
restore | <file> | 지정 파일로 Docker DB 복원 |
restore | <file> --local | 로컬 PostgreSQL로 복원 |
restore | <file> --server | 서버 DB로 복원 (확인 필요) |
실행 스크립트
Docker 환경 (기본)
cd $PROJECT_ROOT
python backup_db.py
python restore_db.py <backup_file>
로컬/서버 환경
cd $PROJECT_ROOT/backend
python -m scripts.db_backup --backup
python -m scripts.db_backup --restore <file> --target local
python -m scripts.db_backup --restore <file> --target server
python -m scripts.db_backup --list
환경 변수 (.env)
| 변수 | 설명 | 기본값 |
|---|
DATABASE_URL | 로컬 PostgreSQL 연결 | localhost:5434 |
SERVER_DATABASE_URL | 서버 PostgreSQL 연결 | (미설정) |
POSTGRES_USER | DB 사용자명 | postgres |
POSTGRES_PASSWORD | DB 비밀번호 | password |
POSTGRES_DB | DB 이름 | edwards |
백업 파일 위치
backups/
├── backup_20260130_120000.sql # 일반 백업
├── backup_20260130_120000.dump # 압축 백업
├── edwards_backup_*.sql # Docker 백업 (backup_db.py)
└── edwards_full_backup_*.sql.gz # 전체 백업
워크플로우 예시
1. Docker DB → 로컬 백업
python backup_db.py
2. 로컬 DB → 서버 복원
cd backend
python -m scripts.db_backup --restore backup_20260130.sql --target server
3. 새 PC로 데이터 이전
python backup_db.py
python restore_db.py edwards_backup_20260130_120000.sql
주의사항
- 복원 시 기존 데이터 삭제됨: 복원 전 현재 DB 백업 권장
- 서버 복원 시 확인 필요:
--server 옵션 사용 시 "yes" 입력 필요
- Docker 컨테이너 필수: Docker 명령은 컨테이너 실행 중이어야 함
- pg_dump 필요: 로컬 명령은 PostgreSQL 클라이언트 도구 필요
참고 파일
backup_db.py - Docker 백업 스크립트
restore_db.py - Docker 복원 스크립트
backend/scripts/db_backup.py - 전체 기능 유틸리티