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

4.7 KiB

WACE PLM 데이터베이스 초기화 가이드

개요

WACE PLM 시스템의 데이터베이스를 초기화하는 방법을 설명합니다. db/dbexport.pgsql 파일을 사용하여 PostgreSQL 데이터베이스에 초기 데이터를 임포트할 수 있습니다.

방법 1: 독립실행환경 (Standalone) - 권장

로컬 PostgreSQL 컨테이너를 포함한 완전한 독립실행환경입니다. 데이터베이스가 자동으로 초기화됩니다.

사용법

# 독립실행환경으로 시작 (로컬 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: 기존 환경에서 데이터베이스 초기화

기존 개발환경이나 운영환경에서 외부 데이터베이스에 초기 데이터를 임포트합니다.

사용법

# 개발환경 데이터베이스 초기화
./start-docker-linux.sh -e dev -i

# 운영환경 데이터베이스 초기화
./start-docker-linux.sh -e prod -i

# 데이터베이스 초기화만 실행 (컨테이너 시작 안함)
./start-docker-linux.sh -i

특징

  • 기존 데이터 자동 백업 생성
  • 연결 테스트 후 임포트 실행
  • 임포트 결과 검증
  • Docker를 사용한 안전한 임포트

방법 3: 수동 스크립트 사용

PostgreSQL 클라이언트 직접 사용

# 기본 설정으로 초기화
./init-db.sh

# 사용자 정의 설정으로 초기화
./init-db.sh dev 211.115.91.141 11132 waceplm postgres waceplm0909!!

Docker를 사용한 초기화

# 기본 설정으로 초기화
./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. 권한: 스크립트 실행 전 권한을 확인하세요.

    chmod +x *.sh
    
  4. 연결 테스트: 임포트 전에 데이터베이스 연결을 테스트합니다.

  5. 에러 처리: 임포트 실패 시 백업 파일을 사용하여 복원할 수 있습니다.

트러블슈팅

연결 실패

# 데이터베이스 서비스 상태 확인
docker ps | grep postgres

# 네트워크 연결 확인
telnet [DB_HOST] [DB_PORT]

임포트 실패

# 로그 확인
./start-docker-linux.sh -l

# 수동 복원
psql -h [HOST] -p [PORT] -U [USER] -d [DB] < backup_YYYYMMDD_HHMMSS.sql

권한 문제

# 스크립트 권한 확인
ls -la *.sh

# 권한 부여
chmod +x *.sh

예시 사용 시나리오

최초 설치 시

# 1. 독립실행환경으로 시작 (권장)
./start-docker-linux.sh -e standalone

# 2. 또는 개발환경에서 DB 초기화 후 시작
./start-docker-linux.sh -e dev -i

데이터 리셋 시

# 1. 컨테이너 중지
./start-docker-linux.sh -s

# 2. Docker 정리 후 재시작
./start-docker-linux.sh -e standalone -c

운영환경 배포 시

# 1. 데이터베이스 초기화
./start-docker-linux.sh -e prod -i

# 2. 애플리케이션 시작
./start-docker-linux.sh -e prod

이 가이드를 통해 WACE PLM 시스템의 데이터베이스를 안전하고 효율적으로 초기화할 수 있습니다.