Files
wace_plm/DATABASE_INIT_GUIDE.md
chpark da06c4684c Initial commit: WACE PLM with database initialization features
- Add Docker Compose configurations for dev, prod, and standalone environments
- Add database initialization scripts (init-db.sh, init-db-docker.sh)
- Add enhanced start-docker-linux.sh with DB init support
- Add comprehensive database initialization guide
- Support for automatic dbexport.pgsql import on first run
- Include safety checks for production environment
2025-08-29 15:46:08 +09:00

184 lines
4.7 KiB
Markdown

# WACE PLM 데이터베이스 초기화 가이드
## 개요
WACE PLM 시스템의 데이터베이스를 초기화하는 방법을 설명합니다. `db/dbexport.pgsql` 파일을 사용하여 PostgreSQL 데이터베이스에 초기 데이터를 임포트할 수 있습니다.
## 방법 1: 독립실행환경 (Standalone) - 권장
로컬 PostgreSQL 컨테이너를 포함한 완전한 독립실행환경입니다. 데이터베이스가 자동으로 초기화됩니다.
### 사용법
```bash
# 독립실행환경으로 시작 (로컬 DB 포함)
./start-docker-linux.sh -e standalone
# 또는 Docker 정리 후 시작
./start-docker-linux.sh -e standalone -c
```
### 특징
- 로컬 PostgreSQL 컨테이너 자동 생성
- `dbexport.pgsql` 파일 자동 임포트
- 외부 데이터베이스 의존성 없음
- 접속 정보:
- 애플리케이션: http://localhost:8090
- 데이터베이스: localhost:5432
- 사용자: postgres
- 비밀번호: waceplm0909!!
## 방법 2: 기존 환경에서 데이터베이스 초기화
기존 개발환경이나 운영환경에서 외부 데이터베이스에 초기 데이터를 임포트합니다.
### 사용법
```bash
# 개발환경 데이터베이스 초기화
./start-docker-linux.sh -e dev -i
# 운영환경 데이터베이스 초기화
./start-docker-linux.sh -e prod -i
# 데이터베이스 초기화만 실행 (컨테이너 시작 안함)
./start-docker-linux.sh -i
```
### 특징
- 기존 데이터 자동 백업 생성
- 연결 테스트 후 임포트 실행
- 임포트 결과 검증
- Docker를 사용한 안전한 임포트
## 방법 3: 수동 스크립트 사용
### PostgreSQL 클라이언트 직접 사용
```bash
# 기본 설정으로 초기화
./init-db.sh
# 사용자 정의 설정으로 초기화
./init-db.sh dev 211.115.91.141 11132 waceplm postgres waceplm0909!!
```
### Docker를 사용한 초기화
```bash
# 기본 설정으로 초기화
./init-db-docker.sh
# 사용자 정의 설정으로 초기화
./init-db-docker.sh 211.115.91.141 11132 waceplm postgres waceplm0909!!
```
## 파일 구조
```
db/
├── 00-create-roles.sh # 데이터베이스 역할 생성 스크립트
└── dbexport.pgsql # 데이터베이스 덤프 파일 (200MB+)
# 새로 추가된 파일들
├── docker-compose.standalone.yml # 독립실행환경 설정
├── init-db.sh # 수동 DB 초기화 스크립트
├── init-db-docker.sh # Docker 기반 DB 초기화 스크립트
└── start-docker-linux.sh # 통합 실행 스크립트 (업데이트됨)
```
## 환경별 설정
### 개발환경 (dev)
- Docker Compose: `docker-compose.dev.yml`
- 환경 변수: `.env.development`
- 외부 DB: 211.115.91.141:11132
### 운영환경 (prod)
- Docker Compose: `docker-compose.prod.yml`
- 환경 변수: `.env.production`
- 외부 DB: 설정에 따라
### 독립실행환경 (standalone)
- Docker Compose: `docker-compose.standalone.yml`
- 로컬 PostgreSQL 컨테이너 사용
- 자동 DB 초기화
## 주의사항
1. **대용량 파일**: `dbexport.pgsql` 파일이 200MB 이상이므로 임포트에 시간이 걸릴 수 있습니다.
2. **백업**: 기존 데이터가 있는 경우 자동으로 백업이 생성됩니다.
- 백업 파일명: `backup_YYYYMMDD_HHMMSS.sql`
3. **권한**: 스크립트 실행 전 권한을 확인하세요.
```bash
chmod +x *.sh
```
4. **연결 테스트**: 임포트 전에 데이터베이스 연결을 테스트합니다.
5. **에러 처리**: 임포트 실패 시 백업 파일을 사용하여 복원할 수 있습니다.
## 트러블슈팅
### 연결 실패
```bash
# 데이터베이스 서비스 상태 확인
docker ps | grep postgres
# 네트워크 연결 확인
telnet [DB_HOST] [DB_PORT]
```
### 임포트 실패
```bash
# 로그 확인
./start-docker-linux.sh -l
# 수동 복원
psql -h [HOST] -p [PORT] -U [USER] -d [DB] < backup_YYYYMMDD_HHMMSS.sql
```
### 권한 문제
```bash
# 스크립트 권한 확인
ls -la *.sh
# 권한 부여
chmod +x *.sh
```
## 예시 사용 시나리오
### 최초 설치 시
```bash
# 1. 독립실행환경으로 시작 (권장)
./start-docker-linux.sh -e standalone
# 2. 또는 개발환경에서 DB 초기화 후 시작
./start-docker-linux.sh -e dev -i
```
### 데이터 리셋 시
```bash
# 1. 컨테이너 중지
./start-docker-linux.sh -s
# 2. Docker 정리 후 재시작
./start-docker-linux.sh -e standalone -c
```
### 운영환경 배포 시
```bash
# 1. 데이터베이스 초기화
./start-docker-linux.sh -e prod -i
# 2. 애플리케이션 시작
./start-docker-linux.sh -e prod
```
이 가이드를 통해 WACE PLM 시스템의 데이터베이스를 안전하고 효율적으로 초기화할 수 있습니다.