Skip to content

Initial Data Seeding

Schemage can declare default rows directly alongside the table definition.

$schema->table('roles', function (Table $t) {
    $t->id();

    $t->string('code')
        ->unique();

    $t->string('name');
})->seed([
    [
        'id' => 1,
        'code' => 'admin',
        'name' => 'Administrator',
    ],
    [
        'id' => 2,
        'code' => 'user',
        'name' => 'User',
    ],
]);

Seed rows are:

  • inserted automatically after migrations;
  • idempotent;
  • never updated;
  • never deleted;
  • ignored when already present.