суббота, 20 июня 2020 г.

Обновляем SonarQube 6.1 до последней версии и мигрируем базу mySQL -> Postgres

Обновляем SonarQube

процесс обновления выглядит так:
6.1 -> 6.7.7 LTS -> 7.9.x LTS -> 8.3

Мигрировать базу предлагаю сразу на версии 6.1 .
База mySql находится на другом хосте, поднимаем postgres рядом с SonarQube

 Через pgloader мигрируем базу в postgres
Проще всего добавить pgloader в compose файл и провести миграцию, а после этого  удалить

пишем Docker-compose file:

sonarqube:
    restart: always
    image: "sonarqube:6.1"     
    volumes:
        - /opt/sonarqube/data:/opt/sonarqube/data
        - /opt/sonarqube/logs:/opt/sonarqube/logs
        - /opt/sonarqube/temp:/opt/sonarqube/temp
    environment:
        SONARQUBE_JDBC_USERNAME: "{{ SONARQUBE_JDBC_USERNAME }}"         
        SONARQUBE_JDBC_PASSWORD: "{{ SONARQUBE_JDBC_PASSWORD }}" 
        SONARQUBE_JDBC_URL: "{{ SONARQUBE_JDBC_URL }}" 
        SONAR_CE_JAVAOPTS: "-Xmx768m -Xms768m" 
        SONAR_WEB_JAVAOPTS: "-Xmx512m -Xms512m"         
        SONAR_SEARCH_JAVAOPTS: "-Xmx512m -Xms512m" 
    depends_on:
        - postgres
    ulimits:
        nproc: 4096
        nofile:
            soft: 65535
            hard: 65535

postgres:
    restart: always
    image: "postgres:10.5-alpine"     
    volumes:
        - /opt/postgres/data:/var/lib/postgresql/data
    environment:
        POSTGRES_USER: "{{ POSTGRES_USER }}"         
        POSTGRES_PASSWORD: "{{ POSTGRES_PASSWORD }}" 
        POSTGRES_DB: "{{ POSTGRES_DB }}"
 
pgloader:
    image: "dimitri/pgloader:latest"     
    command: "sleep 1d"

Делаем бекап mySQL:
docker run -it mysql:5.6 /usr/bin/mysqldump -h mysql_host -u sonar_user --password=sonar_password sonar_database > backup.sql

поднимаем Sonar:
docker-compose up -d

находим контейнер pgloader и запускаем из него миграцию:
docker exec -it $(docker ps | grep pgloader | awk {'print $1'}) bash

pgloader mysql://sonar_user:sonar_password@mysql_host:3306/sonar_database postgresql://sonar_user:sonar_password@postgres/sonar_database

Заходим на web и проверяем, что появились все наши проекты.

Редактируем docker-compose файл - удаляем секцию pgloader и меняем поочередно
sonar image: 
- sonarqube:6.7
- sonarqube:7.9.1-community
- sonarqube:8.3.1-community

после каждого изменения образа:
-  перезапускаем docker-compose
-  заходим в интерфейс SonarQube и нажимаем кнопку для миграции данных

Комментариев нет:

Отправить комментарий

Популярные сообщения