Génération des fichiers de seeds à partir d’une table existante sous Laravel

Si vous avez en main une base de données contenant déjà des données, vous pouvez utiliser un petit outil qui générera les fichiers de seeds correspondants à ces données : OrangeHill iSeed (https://libraries.io/github/orangehill/iseed).

Je vous rappelle qu'avoir en main des fichiers de seeds pour toutes vos tables, en plus des fichiers de migration, vous permettra de recréer la base de données entière à l'aide d'une seule commande artisan. Très pratique pendant le développement après avoir fait des tests d'insertion, de modification et de suppression de données !

▼Publicité

Ajout d'une dépendance

Tout d'abord, il faudra ajouter une dépendance à notre installation Laravel.

La commande composer suivante permettra d'y arriver :

Console Vagrant SSH

composer require orangehill/iseed

Ceci ajoutera une ligne dans le fichier composer.json qui est placé directement dans le dossier de votre projet puis téléchargera les fichiers requis dans le dossier vendor.

La ligne qui a été automatiquement ajoutée est surlignée dans cet extrait :

Fichier composer.json

{

    "name": "laravel/laravel",

    "descaription": "The Laravel Framework.",

    "keywords": ["framework", "laravel"],

    "license": "MIT",

    "type": "project",

    "require": {

        "php": ">=5.6.4",

        "laravel/framework": "5.3.*",

        "doctrine/dbal": "^2.5",

        "orangehill/iseed": "dev-master"

    },

Comme toujours, vous pouvez éditer manuellement le fichier composer.json plutôt que de faire un composer require mais il vous faudra ensuite demander de télécharger les fichiers :

Console Vagrant SSH

composer update

Ajouter une référence dans la liste des service providers

Laravel offre un mécanisme qui permet de charger automatiquement les bibliothèques requises lorsque requis : les service providers.

Ces bibliothèque sont listées dans la section providers du fichier config\app.php.

Pour pouvoir utiliser la bibliothèque orangehill/iseed, ajoutez-la dans la liste des service providers :

Fichier config\app.php (PHP)

'providers' => [

    ...

    /*

     * Application Service Providers...

     */

    ...,

    Orangehill\Iseed\IseedServiceProvider::class,

],

Générer les fichiers de seeds

Une commande artisan permet désormais de générer le fichier de seeds pour une table :

Console Vagrant SSH

php artisan iseed nomtable

Catégories