Page tree

이 문서는 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 준비

  1. 첨부된 폴더를 해제하여 DB migration tool을 준비
  2. 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 마이그레이션 실행

  1. 기존에 사용 중인 SonarQube를 실행
  2. 수정한 스크립트를 실행하여 H2에서 선택한 DB로 데이터를 마이그레이션
  3. 스크립트 실행 후, 마지막에 success 문구가 나타나는지 확인

success 문구가 없을 경우, 스크립트를 재실행

7. SonarQube 중지 및 재기동

  • 마이그레이션이 완료되면 기존 SonarQube를 중지
./sonar.sh stop
  • 이관할 DB로 변경된 JDBC 설정을 SonarQube 설정 파일에 반영한 후, 다시 SonarQube를 실행
./sonar.sh start


8. 마이그레이션 결과 확인

SonarQube가 정상적으로 기동된 후, 프로젝트들이 올바르게 보이는지 확인


문제 해결

  • 프로젝트가 보이지 않을 경우:
    • SonarQube를 중지한 후, SonarQube 데이터 폴더(data 폴더)를 삭제하고 다시 실행
rm -rf <SonarQube_Home>/data ./sonar.sh start



참조


  • No labels