Je me suis un peu lassé de MySql et son fork MariaDB n’apporte pas grand-chose au produit. Du coup, je me lance et je teste PostgreSql. Après tout, c’est “The World’s Most Advanced Open Source Relational Database”.
Installation
Le plus simple est d’installer PostgreSql grâce au gestionnaire de paquets de sa distribution (ici apt sous Debian):
Après quelques secondes, le serveur PostgreSql est installé et démarré.
Configuration
Avant d’avancer dans la création de base et de tables, il convient de changer le mot de passe par défaut et d’ajouter les utilisateurs nécessaires.
Changement du mot de passe par défaut
Test de connexion
On va d’abord s’assurer que la base est bien démarrée puis on pourra tester que l’authentification fonctionne.
1sudo systemctl status postgresql@13-main | grep running
La réponse doit ressembler à ceci:
1Active: active (running) since ....
Ensuite, j’ai ajouté une connexion dans dBeaver (un super client SQL multibases):
Connexion PostgreSql
Le test de connexion est positif:
PostgreSql: test de connexion
Création d’un utilisateur
Une bonne pratique consiste a créer un utilisateur dédié à chaque application, avec les droits minimums (donc pas de DROP DATABASE par exemple). Ici je vais créer l’utilisateur “hged” avec la commande:
1create user 'hged' with encrypted password 'SuperPassword';
On peut vérifier que l’utilisateur est bien créé:
1SELECT usename FROM pg_catalog.pg_user;
Attention! La colonne n’est pas nommée “username” mais bien “usename”. Oui c’est surprenant.
Création d’une base de données
Pour créer une base, il suffit d’exécuter la commande suivante;
1create database homeged with owner='postgres' encoding='utf8';
Ensuite, on autorise l’utilisateur créé à l’étape précédente à manipuler uniquement les données:
1grant select, insert, update, delete on all tables in schema public to hged;
Création d’une table
La requête de création est plus simple qu’avec MySql puisqu’il n’y a pas à indiquer le type de stockage (InnoDB par exemple) ni même l’encodage par défaut (puisque configuré lors de la création de la base). Autre bonus sympa: le type Boolean existe (donc plus besoin d’utiliser un tinyint par exemple).
Utilisation avec TomEE et Apache Deltaspike
Ajouter le connecteur Jdbc
Pour ajouter le connecteur Jdbc, on va éditer le fichier pom.xml et ajouter cette dépendance:
Ensuite on modifie le fichier WEB-INF/resources.xml comme ceci (en bleu):
Et voilà! Rien de plus compliqué que cela.
Conclusion
PostgreSql est facile à installer et remplace sans difficulté MySql. C’est plutôt encourageant et je pense que je vais continuer à l’utiliser afin de voir si son titre est justifié ou non. Affaire à suivre donc.