GitHub Repository

apiato

Definition

Seeders (are a short name for Database Seeders).

Seeders are classes made to seed the database with real data, this data usually should exist in the Application after the installation (Example: the default Users Roles and Permissions or the list of Countries).

Principles

Rules

Folder Structure

 - App
    - Containers
        - {container-name}
             - Data
                - Seeders
                    - ContainerNameRolesSeeder_1.php
                    - ContainerNamePermissionsSeeder_2.php
                    - ...

Code Samples

Roles Seeder:

<?php

namespace App\Containers\Order\Data\Seeders;

use App\Ship\Parents\Seeders\Seeder;
use Apiato\Core\Foundation\Facades\Apiato;

class OrderPermissionsSeeder_1 extends Seeder
{

    public function run()
    {
        Apiato::call('Authorization@CreatePermissionTask', ['approve-reject-orders']);
        Apiato::call('Authorization@CreatePermissionTask', ['find-orders']);
        Apiato::call('Authorization@CreatePermissionTask', ['list-orders']);
        Apiato::call('Authorization@CreatePermissionTask', ['update-orders']);
        Apiato::call('Authorization@CreatePermissionTask', ['delete-orders']);

        // ...

    }
}


Note: Same Seeder class is allowed to contain seeding for multiple Models.

Run the Seeders

After registering the Seeders you can run this command:

php artisan db:seed

To run specific Seeder class you can specific its class in the parameter as follow:

php artisan db:seed --class="your\single\seeder\goes-here"

Migrate & seed at the same time

php artisan migrate --seed

For more information about the Database Seeders read this.

Apiato testing seeder command

It’s useful sometimes to create a big set of testing data. apiato facilitates this task:

  1. Open app/Ship/Seeders/SeedTestingData.php and write your testing data here.
  2. Run this command any time you want this data available (example at staging servers):
php artisan apiato:seed-test