140 lines
3.9 KiB
Markdown
140 lines
3.9 KiB
Markdown
# ✅ 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 ! 🚀**
|
|
|