Database-Manager/README.md

42 lines
2.2 KiB
Markdown

Ce projet est un utilitaire qui permet une gestion efficace et facile de la base de donnée de l'application [Color Recipes Explorer](https://git.fyloz.dev/color-recipes-explorer). Le but premier était de séparer la gestion de la base de donnée de l'application principale.
## Fonctionnalités
### Vérification de la version de la base de donnée
Cet utilitaire permet à l'application de vérifier la version de la base de donnée et ainsi empêcher son démarrage si la base de donnée n'est pas compatible avec la version de l'application.
### Mise à jour de la base de donnée
Cet utilitaire permet de mettre à jour la base de donnée vers une version donnée.
### API Kotlin
L'application utilise cet API pour vérifier la version de la base de donnée et pour permettre une mise à jour semi-automatique de la base de donnée.
## Versions de la base de donnée
* `0`: Avant la création de la base de donnée
* `1`: Avant l'implémentation d'un API REST
* `2`: Après l'implémentation d'un API REST
## Utilisation autonome
### Prérequis
* Gradle 6.8 ou supérieur
* Java 11 ou supérieur
* Le driver JDBC pour votre système de base de donnée (ex: `mysql-connector-java` pour MySQL)
### Actions
* Vérifier la version de la base de donnée: `versionCheck`
* Mettre à jour la base de donnée: `update`
### Étapes
**Note: Les étapes assument que vous utilisez un système d'exploitation Linux.**
1. Cloner le projet: `git clone https://git.fyloz.dev/color-recipes-explorer/database-manager.git && cd database-manager`
2. Compiler un _shadow jar_: `gradle shadowJar`
3. Naviguer dans le dossier de compilation: `cd build/libs`
4. Créer le fichier de configuration ([exemple](https://git.fyloz.dev/color-recipes-explorer/database-manager/-/blob/master/README.md#exemple-de-fichier-de-configuration))
5. Exécuter l'utilitaire: `java -cp database-manager-<version>-all.jar:<driver>.jar dev.fyloz.colorrecipesexplorer.databasemanager.DatabaseUpdaterKt <action> <configuration>`
## Exemple de fichier de configuration
```
database.target-version=2 # Voir "Versions de la base de donnée"
database.url=jdbc:mysql://host/
database.name=database
database.username=user
database.password=pass
```