Swell

Seeders

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

Les seeders dans Swell

Les seeders permettent d’ajouter automatiquement des données essentielles ou de test dans la base de données. Swell propose plusieurs seeders pour faciliter l’installation, le développement et les tests de votre application.

Initialiser les rôles avec le RoleSeeder

Le RoleSeeder permet d’ajouter automatiquement les rôles essentiels à la base de données lors de l’installation ou du développement de l’application.

Swell s’appuie sur le package spatie/laravel-permission pour la gestion des rôles et permissions. Ce package robuste facilite la création, l’attribution et la gestion des rôles dans Laravel.

Pourquoi utiliser un seeder de rôles ?

  • Gain de temps : plus besoin de créer manuellement les rôles à chaque nouvelle installation.
  • Cohérence : tous les environnements disposent des mêmes rôles de base.
  • Automatisation : facilite les déploiements et les tests.

Utilise le RoleSeeder pour t’assurer que les rôles comme admin, customer ou visitor existent toujours dans la base de données. Ces rôles sont créés via le package spatie/laravel-permission.

Exemple d’exécution

Pour initialiser les rôles de base, il suffit d’exécuter la commande suivante :

php artisan db:seed --class=RoleSeeder

# Pour repartir d’une base de données vierge :
php artisan migrate:fresh --seed --seeder=RoleSeeder

Après exécution, les rôles suivants seront créés :

  • admin : accès complet aux pages Admin.
  • customer : regroupe les utilisateurs ayant passé commande.
  • visitor : utilisateur de base, n'ayant pas encore passé commande.

Bon à savoir

Adapter le contenu du RoleSeeder selon les besoins spécifiques de ton application.

Pour plus d'info sur la gestion des permissions, voir la documentation de spatie/laravel-permission

Initialiser des données de développement avec le LocalSeeder

Le LocalSeeder est conçu pour faciliter le développement local en injectant des données de test dans la base de données : utilisateurs, produits, catégories, etc. Il permet de simuler un environnement réaliste sans avoir à créer manuellement chaque entrée.

Exemple d’exécution

php artisan db:seed --class=LocalSeeder

# Pour repartir d’une base de données vierge :
php artisan migrate:fresh --seed --seeder=LocalSeeder

Ce seeder va créer un ensemble de données variées pour que vous puissiez tester l’application dans des conditions proches de la production.

Le LocalSeeder est à utiliser uniquement en environnement de développement.

Générer des produits de test avec le LocalProductSeeder

Le LocalProductSeeder permet de générer rapidement un catalogue de produits fictifs pour tester les fonctionnalités e-commerce de Swell (listing, recherche, panier, etc.).

Exemple d’exécution

php artisan db:seed --class=LocalProductSeeder

# Pour repartir d’une base de données vierge :
php artisan migrate:fresh --seed --seeder=LocalProductSeeder

Après exécution, plusieurs produits de test seront disponibles dans la boutique, avec des prix, stocks et descriptions variés.

Le LocalProductSeeder, appelé par le LocalSeeder, centralise la génération de produits de test réalistes pour simuler un vrai catalogue sans alourdir le LocalSeeder.

Conseils et bonnes pratiques

  • Exécutez les seeders adaptés à votre environnement : RoleSeeder pour la base et LocalSeeder pour le développement.
  • N’utilisez jamais les seeders de développement (LocalSeeder) en production.
  • Personnalisez le contenu des seeders selon les besoins spécifiques de votre projet.

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