Fix: Rendre les tests plus flexibles pour l'environnement CI/CD lionsctl
This commit is contained in:
139
CHANGEMENTS_HIBERNATE.md
Normal file
139
CHANGEMENTS_HIBERNATE.md
Normal file
@@ -0,0 +1,139 @@
|
||||
# ✅ Changements effectués : Migration vers Hibernate
|
||||
|
||||
## 📋 Résumé
|
||||
|
||||
Flyway a été **désactivé** et Hibernate gère maintenant **automatiquement** la création des tables et le chargement des données.
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Fichiers modifiés
|
||||
|
||||
### 1. **`src/main/resources/application.properties`**
|
||||
|
||||
**Changements :**
|
||||
- ✅ `quarkus.hibernate-orm.database.generation` : `update` → `drop-and-create`
|
||||
- ✅ `quarkus.hibernate-orm.log.sql` : `false` → `true` (pour voir les requêtes SQL)
|
||||
- ✅ `quarkus.flyway.migrate-at-start` : `true` → `false` (Flyway désactivé)
|
||||
- ❌ Supprimé : `quarkus.flyway.baseline-on-migrate`, `quarkus.flyway.baseline-version`, `quarkus.flyway.locations`
|
||||
|
||||
### 2. **`src/main/resources/import.sql`** (nouveau fichier)
|
||||
|
||||
**Contenu :**
|
||||
- ✅ Données de test complètes pour le marché ivoirien
|
||||
- ✅ Types de chantier
|
||||
- ✅ Clients (entreprises et particuliers)
|
||||
- ✅ Employés et équipes
|
||||
- ✅ Matériel BTP
|
||||
- ✅ Chantiers avec phases
|
||||
- ✅ Devis et factures
|
||||
|
||||
**Exécution :**
|
||||
- Ce fichier est **automatiquement exécuté** par Hibernate après la création des tables
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Comment démarrer l'application
|
||||
|
||||
### Mode développement :
|
||||
```bash
|
||||
./mvnw quarkus:dev
|
||||
```
|
||||
|
||||
### Ce qui se passe au démarrage :
|
||||
1. ✅ Hibernate **supprime** toutes les tables existantes
|
||||
2. ✅ Hibernate **crée** toutes les tables à partir des entités JPA
|
||||
3. ✅ Hibernate **exécute** `import.sql` pour charger les données
|
||||
4. ✅ L'application démarre avec une base de données complète
|
||||
|
||||
---
|
||||
|
||||
## 📊 Vérifier les données
|
||||
|
||||
### Console H2 (développement) :
|
||||
```
|
||||
http://localhost:8080/q/dev
|
||||
```
|
||||
|
||||
### API REST :
|
||||
```bash
|
||||
# Lister les clients
|
||||
curl http://localhost:8080/api/clients
|
||||
|
||||
# Lister les chantiers
|
||||
curl http://localhost:8080/api/chantiers
|
||||
|
||||
# Lister les devis
|
||||
curl http://localhost:8080/api/devis
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Modes de génération disponibles
|
||||
|
||||
Pour changer le comportement, modifiez `quarkus.hibernate-orm.database.generation` :
|
||||
|
||||
| Mode | Comportement | Utilisation |
|
||||
|------|--------------|-------------|
|
||||
| `drop-and-create` | Supprime et recrée les tables à chaque démarrage | ✅ **Développement** (actuel) |
|
||||
| `update` | Met à jour le schéma sans supprimer les données | 🔄 Développement avec persistance |
|
||||
| `validate` | Valide le schéma sans modification | 🏭 **Production** |
|
||||
| `none` | Aucune action | 🚫 Gestion manuelle |
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Pour conserver les données entre les redémarrages
|
||||
|
||||
Si vous voulez que les données persistent entre les redémarrages :
|
||||
|
||||
**Modifier `application.properties` :**
|
||||
```properties
|
||||
quarkus.hibernate-orm.database.generation=update
|
||||
```
|
||||
|
||||
**⚠️ Attention :** Avec `update`, le fichier `import.sql` sera exécuté à chaque démarrage, ce qui peut causer des erreurs de doublons. Pour éviter cela :
|
||||
- Commentez les lignes dans `import.sql` après le premier démarrage
|
||||
- Ou renommez le fichier : `import.sql.bak`
|
||||
|
||||
---
|
||||
|
||||
## 📁 Fichiers Flyway (conservés mais non utilisés)
|
||||
|
||||
Les fichiers de migration Flyway sont toujours présents dans `src/main/resources/db/migration/` :
|
||||
- `V1__Initial_schema.sql`
|
||||
- `V2__Sample_data.sql`
|
||||
- `V3__create_auth_tables.sql`
|
||||
- `V4__create_phase_templates_fixed.sql`
|
||||
- `V5__Ivorian_test_data.sql`
|
||||
|
||||
**Vous pouvez les supprimer** si vous ne prévoyez pas de réactiver Flyway.
|
||||
|
||||
---
|
||||
|
||||
## 🏭 Configuration pour la production
|
||||
|
||||
**Important :** En production, utilisez `validate` pour éviter toute modification du schéma :
|
||||
|
||||
**`application.properties` :**
|
||||
```properties
|
||||
%prod.quarkus.hibernate-orm.database.generation=validate
|
||||
%prod.quarkus.flyway.migrate-at-start=false
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 Documentation complète
|
||||
|
||||
Pour plus de détails, consultez : **`MIGRATION_HIBERNATE.md`**
|
||||
|
||||
---
|
||||
|
||||
## ✅ Résultat
|
||||
|
||||
Votre application démarre maintenant avec :
|
||||
- ✅ Tables créées automatiquement par Hibernate
|
||||
- ✅ Données de test chargées automatiquement
|
||||
- ✅ Pas de conflit avec Flyway
|
||||
- ✅ Base de données prête à l'emploi
|
||||
|
||||
**Bon développement ! 🚀**
|
||||
|
||||
Reference in New Issue
Block a user