이 문서는 Migrate SonarQube from H2 to another database 가이드를 공유하기 위해 작성되었다.
도구명 | Sonarqube |
---|---|
버전 | 9.9 |
OS | |
비고 |
Migrate SonarQube from H2 to another database
공식적으로 해당 기능은 제공하지 않는다.
해당 가이드는 Sonarqube 9.9.6
Postgresql 13
MSSQL 2019
Oracle 19C 에서 테스트
1. 사전 준비
필수 사항
- SonarQube에서 제공하는 DB Migration Tool 사용.
- 이관할 DB에 마이그레이션할 테이블이 미리 존재해야 함.
필요 도구 및 환경
- 이관할 DB(MSSQL, Oracle, Postgres 등) 설치 및 설정 완료
- SonarQube 임시 설치(같은 버전의 SonarQube 필요)
- H2 DB에 접근 가능해야 함
- Attachment Download 및 압축해제
다운로드: sonarH2migrate.zip
2. 대상 DB 생성
SonarQube 데이터를 이관할 DB를 생성. 이 DB는 SonarQube에서 요구하는 스키마 구조를 지원할 수 있어야 하며, 해당 테이블들이 미리 존재해야 함
예시
- MSSQL, Oracle, Postgres 등 원하는 데이터베이스에서 데이터베이스 및 사용자 생성
CREATE DATABASE sonarqube_db; CREATE USER sonarqube_user WITH PASSWORD 'your_password'; GRANT ALL PRIVILEGES ON DATABASE sonarqube_db TO sonarqube_user;
3. SonarQube 임시 실행
- 이관할 DB에 연결된 같은 버전의 SonarQube를 임시로 실행
- SonarQube가 DB에 정상적으로 연결되는지 확인
SonarQube는
sonar.properties
파일에서 데이터베이스 연결 설정
# sonar.properties 예시 설정 sonar.jdbc.url=jdbc:<db_type>://localhost:5432/sonarqube_db sonar.jdbc.username=sonarqube_user sonar.jdbc.password=your_password
- <db_type>은 사용하고 있는 DB 유형(MSSQL, Oracle, Postgres 등)에 맞게 설정
- SonarQube를 실행하여 정상적으로 실행되는지 확인합니다.
./sonar.sh start
4. 임시 SonarQube 종료
DB 연결 및 설정이 올바른지 확인한 후, 임시 SonarQube를 종료
./sonar.sh stop
5. Migration Tool 준비
- 첨부된 폴더를 해제하여 DB migration tool을 준비
- OS와 database에 맞는 스크립트를 선택하여 파일의 변수를 환경에 맞게 수정
- JAR_PATH: 스크립트에서 필요한 JAR 파일이 위치한 경로를 설정
- userSrc / pwdSrc: H2 데이터베이스의 기본 사용자명과 비밀번호로, 기본값을 유지
- urlSrc: H2 데이터베이스의 JDBC URL을 설정. SonarQube의 Administration → System에서 확인할 수 있는 JDBC URL을 사용
- userDest: 대상 DB(PostgreSQL, MSSQL, Oracle 등)의 데이터베이스 사용자
- pwdDest: 대상 DB(PostgreSQL, MSSQL, Oracle 등)의 데이터베이스 비밀번호
- urlDest: 대상 DB의 JDBC URL을 설정합니다. SonarQube의 Administration → System에서 확인할 수 있는 JDBC URL을 사용(다른 PC인 경우에는 해당 IP로 변경)
6. DB 마이그레이션 실행
- 기존에 사용 중인 SonarQube를 실행
- 수정한 스크립트를 실행하여 H2에서 선택한 DB로 데이터를 마이그레이션
- 스크립트 실행 후, 마지막에 success 문구가 나타나는지 확인
success 문구가 없을 경우, 스크립트를 재실행
7. SonarQube 중지 및 재기동
- 마이그레이션이 완료되면 기존 SonarQube를 중지
./sonar.sh stop
- 이관할 DB로 변경된 JDBC 설정을 SonarQube 설정 파일에 반영한 후, 다시 SonarQube를 실행
./sonar.sh start
8. 마이그레이션 결과 확인
SonarQube가 정상적으로 기동된 후, 프로젝트들이 올바르게 보이는지 확인
문제 해결
- 프로젝트가 보이지 않을 경우:
- SonarQube를 중지한 후, SonarQube 데이터 폴더(
data
폴더)를 삭제하고 다시 실행
- SonarQube를 중지한 후, SonarQube 데이터 폴더(
rm -rf <SonarQube_Home>/data ./sonar.sh start