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