# Guide de configuration de la base de données - Laragon ## Prérequis - Laragon installé et démarré - MySQL actif dans Laragon - Composer installé ## Étapes de configuration ### 1. Démarrer Laragon et MySQL 1. Ouvrez **Laragon** 2. Cliquez sur **Start All** pour démarrer Apache et MySQL 3. Vérifiez que MySQL est bien démarré (icône verte) ### 2. Créer la base de données MySQL #### Option A : Via HeidiSQL (recommandé) 1. Dans Laragon, cliquez sur **Database** ou ouvrez **HeidiSQL** 2. Connectez-vous avec : - **Host** : `127.0.0.1` ou `localhost` - **User** : `root` - **Password** : (généralement vide) - **Port** : `3306` 3. Cliquez sur **Nouvelle base de données** (ou **New Database**) 4. Nommez-la : `eventshbf` 5. Choisissez le charset : `utf8mb4` 6. Choisissez la collation : `utf8mb4_unicode_ci` 7. Cliquez sur **OK** #### Option B : Via MySQL en ligne de commande Ouvrez un terminal dans Laragon (clic droit > Terminal) et exécutez : ```sql mysql -u root -p ``` (Si pas de mot de passe, appuyez juste sur Entrée) Puis exécutez : ```sql CREATE DATABASE eventshbf CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; EXIT; ``` ### 3. Installer les dépendances Composer Ouvrez un terminal PowerShell ou CMD dans le dossier `api/` : ```bash cd api composer install ``` ### 4. Créer le fichier .env Créez le fichier `.env` à partir du template (si .env.example existe) : ```bash copy .env.example .env ``` Si `.env.example` n'existe pas, créez un fichier `.env` avec ce contenu : ```env APP_NAME="EVENTS HAGGAI BURKINA FASO API" APP_ENV=local APP_KEY= APP_DEBUG=true APP_TIMEZONE=UTC APP_URL=http://localhost APP_LOCALE=en APP_FALLBACK_LOCALE=en APP_FAKER_LOCALE=en_US APP_MAINTENANCE_DRIVER=file APP_MAINTENANCE_STORE=database BCRYPT_ROUNDS=12 LOG_CHANNEL=stack LOG_STACK=single LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=eventshbf DB_USERNAME=root DB_PASSWORD= SESSION_DRIVER=database SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=null BROADCAST_CONNECTION=log FILESYSTEM_DISK=local QUEUE_CONNECTION=database CACHE_STORE=database CACHE_PREFIX= MEMCACHED_HOST=127.0.0.1 REDIS_CLIENT=phpredis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_MAILER=log MAIL_HOST=127.0.0.1 MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="${APP_NAME}" ``` **Important** : Vérifiez que ces lignes sont correctes : - `DB_DATABASE=eventshbf` - `DB_USERNAME=root` - `DB_PASSWORD=` (vide si pas de mot de passe, sinon mettez votre mot de passe) ### 5. Générer la clé d'application ```bash php artisan key:generate ``` ### 6. Publier les configurations Spatie Permission ```bash php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" ``` ### 7. Exécuter les migrations Cela va créer toutes les tables dans la base de données : ```bash php artisan migrate ``` Vous devriez voir des messages comme : ``` Migrating: 2024_01_15_100000_create_events_table Migrated: 2024_01_15_100000_create_events_table ... ``` ### 8. Créer les rôles ```bash php artisan db:seed --class=RoleSeeder ``` ### 9. Créer les événements et settings ```bash php artisan db:seed --class=EventSeeder php artisan db:seed --class=EventSettingSeeder ``` Ou pour tout seed d'un coup : ```bash php artisan db:seed ``` ### 10. Vérifier la connexion Testez la connexion avec Tinker : ```bash php artisan tinker ``` Puis dans Tinker : ```php DB::connection()->getPdo(); Event::count(); ``` Si tout fonctionne, vous devriez voir le nombre d'événements (2 si les seeders ont fonctionné). ### 11. Démarrer le serveur de développement ```bash php artisan serve ``` Le serveur sera accessible sur `http://localhost:8000` ### 12. Tester l'API Testez avec curl ou Postman : ```bash curl http://localhost:8000/api/events ``` Ou dans un navigateur : `http://localhost:8000/api/events` ## Vérification dans HeidiSQL 1. Ouvrez HeidiSQL 2. Connectez-vous à la base `eventshbf` 3. Vous devriez voir toutes les tables : - `events` - `event_phases` - `event_settings` - `pricing_plans` - `registrations` - `contributions` - `payment_batches` - `payments` - `users` - `roles` - `permissions` - etc. ## Dépannage ### Erreur "Access denied for user 'root'@'localhost'" Vérifiez le mot de passe MySQL dans `.env`. Par défaut avec Laragon, le mot de passe est vide. ### Erreur "Unknown database 'eventshbf'" La base de données n'a pas été créée. Revenez à l'étape 2. ### Erreur "Class not found" Exécutez : ```bash composer dump-autoload ``` ### Erreur de migration Si une migration échoue, vous pouvez la réinitialiser : ```bash php artisan migrate:fresh ``` ⚠️ **Attention** : Cela supprime toutes les données ! ### Vérifier les logs Les erreurs sont dans `storage/logs/laravel.log` ## Commandes utiles ```bash # Voir l'état des migrations php artisan migrate:status # Réinitialiser complètement la base (supprime tout) php artisan migrate:fresh --seed # Rollback de la dernière migration php artisan migrate:rollback # Voir les routes disponibles php artisan route:list ```