---
sidebar_position: 2
title: "Configuration & Initialisation"
---

# Configuration & Initialisation

---

## 1. Ajouter le Plugin Maven Flyway

Pour intégrer Flyway au projet, ajoutez le plugin suivant à votre `pom.xml` :

```xml
<plugin>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-maven-plugin</artifactId>
    <version>11.0.0</version>
</plugin>
```

---

## 2. Créer le Répertoire de Migration

Par défaut, Flyway recherche les migrations dans un emplacement spécifique du classpath. Créez le répertoire suivant dans la structure de votre projet :

```text
src/main/resources/db/migration
```

---

## 3. Initialisation de la Base de Données Existante (Une Seule Fois)

Étant donné que la base de données existe déjà en production, Flyway doit créer sa table de suivi interne (`flyway_schema_history`) et établir une ligne de base (baseline) du schéma existant. Cela permet à Flyway de connaître le point de départ et de ne pas essayer de recréer des tables existantes.

### 3.1 Créer la Migration Initiale

Créez un fichier nommé `V1__initial_schema.sql` dans le dossier de migration. Ce fichier doit contenir le code SQL représentant la structure complète et actuelle de la base de données.

### 3.2 Établir la Ligne de Base (Baseline)

Exécutez la commande suivante **une seule fois** pour initialiser Flyway sans exécuter le script SQL `V1` sur la base de données déjà peuplée :

```cmd
mvn flyway:baseline ^
-Dflyway.url=jdbc:postgresql://localhost:5432/TrizTresorie ^
-Dflyway.user=postgres ^
-Dflyway.password=VOTRE_MOT_DE_PASSE ^
-Dflyway.baselineVersion=1
```

Cela crée la table `flyway_schema_history` et marque la version `1` comme étant déjà appliquée. À partir de ce moment, Flyway n'exécutera que les migrations à partir de `V2`.
