Skip to main content
zerotal

Documentation


Documentation / @zerotal/orm / index / Seeder

Abstract Class: Seeder

Defined in: packages/orm/src/seeding/Seeder.ts:24

Base class for database seeders. Extend it and implement run to populate your database; use call to compose other seeders. Run seeders with the db:seed command.

Example

// database/seeders/DatabaseSeeder.ts
export class DatabaseSeeder extends Seeder {
  async run(): Promise<void> {
    await this.call([UserSeeder, PostSeeder]);
  }
}

export class UserSeeder extends Seeder {
  async run(): Promise<void> {
    await User.factory().count(10).create();
  }
}

Constructors

Constructor

new Seeder(): Seeder

Returns

Seeder

Methods

run()

abstract run(): Promise<void>

Defined in: packages/orm/src/seeding/Seeder.ts:26

Seed logic for this seeder. Implemented by subclasses.

Returns

Promise<void>


call()

call(seeders): Promise<void>

Defined in: packages/orm/src/seeding/Seeder.ts:36

Run other seeder classes in sequence inside a single DB transaction. If any seeder throws, all changes are rolled back atomically. Order matters — seed dependencies before dependents (users before posts).

Parameters

seeders

() => Seeder[]

Seeder classes to instantiate and run, in order.

Returns

Promise<void>

Resolves once every seeder has run and the transaction commits.