3.9 KiB
✅ 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 :
./mvnw quarkus:dev
Ce qui se passe au démarrage :
- ✅ Hibernate supprime toutes les tables existantes
- ✅ Hibernate crée toutes les tables à partir des entités JPA
- ✅ Hibernate exécute
import.sqlpour charger les données - ✅ 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 :
# 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 :
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.sqlaprè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.sqlV2__Sample_data.sqlV3__create_auth_tables.sqlV4__create_phase_templates_fixed.sqlV5__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 :
%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 ! 🚀