Swell

Seeders

Initialiser rapidement des données essentielles ou de démonstration dans la base de données avec les seeders de Swell.

Architecture des Seeders

Swell organise ses seeders en deux niveaux pour une flexibilité maximale :

SeederUsageCommande
DatabaseSeederDonnées essentielles (rôles)php artisan db:seed
DemoSeederDonnées de démonstration complètesphp artisan db:seed --class=DemoSeeder
php artisan db:seed

DatabaseSeeder - Données essentielles

Le DatabaseSeeder exécute uniquement le RoleSeeder pour créer les rôles nécessaires au fonctionnement de l'application.

Swell s'appuie sur le package spatie/laravel-permission pour la gestion des rôles et permissions.

Rôles créés

  • admin : accès complet aux pages Admin
  • customer : utilisateurs ayant passé commande
  • visitor : utilisateur de base

Le RoleSeeder utilise firstOrCreate() et peut être exécuté plusieurs fois sans risque de duplication.

DemoSeeder - Données de démonstration

Le DemoSeeder crée un environnement complet pour tester l'application :

Données générées

SeederDescription
RoleSeederRôles de base (admin, customer, visitor)
AdminUserSeederUtilisateur admin (john@doe.com / password)
BannerSeederMessages de bannière promotionnels
CatalogSeederMarques, catégories et produits (thème fashion)
DashboardSeederUtilisateurs et commandes pour les analytics

Structure des fichiers

database/seeders/
├── DatabaseSeeder.php      # Point d'entrée par défaut (RoleSeeder)
├── DemoSeeder.php          # Point d'entrée données de démo
├── RoleSeeder.php          # Rôles de base
└── Demo/
    ├── AdminUserSeeder.php # Utilisateur admin
    ├── BannerSeeder.php    # Messages bannière
    ├── CatalogSeeder.php   # Marques, catégories, produits
    └── DashboardSeeder.php # Données dashboard (users + orders)

Compte admin

Après exécution du DemoSeeder, connecte-toi avec :

  • Email : john@doe.com
  • Mot de passe : password

Catalogue de produits

Le CatalogSeeder génère un catalogue fashion complet :

Catégories principales :

  • Femme (Hauts, Pantalons, Robes & Jupes, etc.)
  • Homme (T-shirts & Polos, Chemises, Sweats, etc.)
  • Accessoires (Sacs, Ceintures, Bijoux, etc.)
  • Sport (Vêtements, Chaussures, Équipement)

Marques : Zara, H&M, Nike, Adidas, Levi's, Mango, et plus.

Dashboard Analytics

Le DashboardSeeder génère 6 mois de données réalistes :

  • 30+ utilisateurs avec dates de création variées
  • Commandes distribuées avec revenus réalistes
  • Données parfaites pour tester les graphiques du dashboard admin

Seeders par module

Si des modules sont activés, le DemoSeeder exécute automatiquement leurs seeders :

// Dans DemoSeeder.php
if (config('swell.workspace.enabled', false)) {
    $this->call(WorkspaceModuleSeeder::class);
}

Créer un seeder personnalisé

Pour ajouter tes propres données de test :

php artisan make:seeder CustomSeeder

Puis ajoute-le au DemoSeeder ou crée ton propre point d'entrée.

Conseils et bonnes pratiques

  • Production : Exécute uniquement php artisan db:seed (RoleSeeder)
  • Développement : Utilise php artisan db:seed --class=DemoSeeder
  • Tests : Le DemoSeeder fournit des données cohérentes pour les tests manuels
  • Idempotence : Le RoleSeeder peut être exécuté plusieurs fois sans erreur

Pour aller plus loin, consultez la documentation Laravel sur les seeders : https://laravel.com/docs/seeding