H2Database
Introduction
Le grand avantage de H2Database est qu'il ne nécessite pas de serveur de base de données car il permet de fonctionner de manière embarquée dans les applications.
H2Database est recommandé uniquement à des fins de développement et de tests, en production un autre type de base de données plus robuste doit être utilisé.
Recommandations et Limitations
H2Database ne permet pas à plus d'un seul processus d'accéder au fichier de base de données.
Ainsi, si vous devez manipuler le fichier ou y accéder via la console web, vous devrez arrêter l'exécution de Netuno.
Fichiers de Base de Données
Les fichiers de base de données de H2Database se trouvent dans le dossier dbs, qui est à l'intérieur de l'application, par exemple :
apps/mon_app/dbs
Si vous souhaitez renommer la base de données, modifiez le nom du fichier et corrigez les configurations de l'application, par exemple dans l'environnement development :
config/_development.json
La correction doit être effectuée dans la partie de configuration de la connexion à la base de données :
...
"db": {
"default": {
"password": "",
"engine": "h2",
"port": "",
"host": "",
"name": "ma_db",
"username": ""
}
}
...
Console Web
Il peut être nécessaire d'accéder directement à la base de données, dans ce cas ce sera possible via la console web de H2Database.
La console web est lancée en exécutant directement le jar de H2Database de la manière suivante :
java -cp web/WEB-INF/lib/h2-*.jar org.h2.tools.Server
Il est supposé que vous êtes à la racine de Netuno.
Pour visualiser les options disponibles :
java -cp web/WEB-INF/lib/h2-*.jar org.h2.tools.Server -?
Démarre la console web sur le port Netuno 9000 et permet l'accès depuis des IP externes :
java -cp web/WEB-INF/lib/h2-*.jar org.h2.tools.Server -webPort 9000 -tcpAllowOthers
Vous devrez arrêter l'exécution de Netuno au préalable pour éviter que plusieurs processus manipulent le fichier de base de données.
L'URL JDBC pour se connecter à la base de données doit être :
jdbc:h2:./apps/mon_app/dbs/ma_db;MODE=PostgreSQL;CASE_INSENSITIVE_IDENTIFIERS=TRUE;DATABASE_TO_LOWER=TRUE;DEFAULT_NULL_ORDERING=HIGH;DB_CLOSE_ON_EXIT=TRUE;
Remplacez la partie
mon_apppar le nom de l'application etma_dbpar le nom de la base de données correspondante.
L'authentification sera l'utilisateur sa mais sans mot de passe.
Réinitialiser les accès
Surtout lorsque vous perdez l'accès de l'utilisateur dev.
Accédez via la console web de H2Database comme décrit ci-dessus.
Pour recréer l'accès, supprimez les données de la table netuno_user, par exemple :
delete from netuno_user
Ainsi, Netuno recréera les utilisateurs avec leurs mots de passe par défaut lorsqu'il sera redémarré.