# ✅ 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 ! 🚀**