Sonar Configuration PostgreSQL

De EjnTricks

La première installation de Sonar étudiée est basée sur MySql. Depuis la version 7.9, cette base n'est plus supportée et l'installation a été migrée sous PostgreSQL.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


User-icon.png Création du role PostgreSQL

Un rôle est mis en place spécifiquement pour l'application.

postgres=# CREATE ROLE sonar WITH LOGIN PASSWORD 'SONAR_PASSWORD' NOSUPERUSER NOCREATEDB;
CREATE ROLE

SONAR_PASSWORD est remplacé par le mot de passe souhaité.

Icon-database-init.png Création de la base

Une nouvelle base est créée.

postgres=# CREATE DATABASE sonarqube WITH ENCODING 'UTF8' OWNER sonar;
CREATE DATABASE

A noter que le rôle mis en place, dans ce cas, est le propriétaire de la nouvelle base. Aucune restriction ne sera appliqué à ce compte.

Db-backup.png Compte backup

Dans la cadre de la procédure de backup, le compte backup est utilisé au niveau de PostgreSql comme mentionné au niveau du principe de backup. Il est donc nécessaire de modifier les droits par défaut. L'application se connectant avec le compte sonar, il est donc nécessaire de se connecter à la base sonarqube avec celui-ci.

# psql -d sonarqube -U sonar -h 127.0.0.1
sonarqube=> ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO viewers;
ALTER DEFAULT PRIVILEGES
sonarqube=> GRANT SELECT ON ALL TABLES IN schema public TO viewers;
GRANT

Icon-Configuration-Settings.png Configuration de la base de données

La dernière étape consiste à référencer cette base au niveau de Sonar. Pour cela, il faut éditer le fichier <UNZIP_DIRECTORY>/conf/sonar.properties et éditer la section #----- PostgreSQL 9.3 or greater ainsi:

#----- Embedded Database (default)
# H2 embedded database server listening port, defaults to 9092
#sonar.embeddedDatabase.port=9092


#----- Oracle 11g/12c/18c/19c
# The Oracle JDBC driver must be copied into the directory extensions/jdbc-driver/oracle/.
# Only the thin client is supported, and we recommend using the latest Oracle JDBC driver. See
# https://jira.sonarsource.com/browse/SONAR-9758 for more details.
# If you need to set the schema, please refer to http://jira.sonarsource.com/browse/SONAR-5000
#sonar.jdbc.url=jdbc:oracle:thin:@localhost:1521/XE


#----- PostgreSQL 9.3 or greater
# By default the schema named "public" is used. It can be overridden with the parameter "currentSchema".
#sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube

Cela permet d'activer l'utilisation de PostgreSql au lieu de la base Derby embarquée. Il faut ensuite renseigné le compte et le mot de passe utilisé pour se connecter à cette base de données, en reprenant la définition du compte déclaré dans la base

# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
#sonar.jdbc.username=
#sonar.jdbc.password=
sonar.jdbc.username=sonar
sonar.jdbc.password=SONAR_PASSWORD