- 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
184 lines
4.7 KiB
Markdown
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 시스템의 데이터베이스를 안전하고 효율적으로 초기화할 수 있습니다.
|