Skip to content

Factories and Seeders ​

Arkorm includes class-based factories and seeders for test data and local bootstrap flows.

Factories ​

Create a factory ​

ts
import { ModelFactory } from 'arkormx'
import { User } from '../../src/models/User'

export class UserFactory extends ModelFactory<User> {
  protected model = User

  protected definition(sequence: number) {
    return {
      name: `User ${sequence}`,
      email: `user${sequence}@example.com`,
    }
  }
}

Use from model ​

ts
User.setFactory(UserFactory)

await User.factory().create()
await User.factory(10).createMany()

Seeders ​

ts
import { Seeder } from 'arkormx'

export class DatabaseSeeder extends Seeder {
  async run(): Promise<void> {
    await this.call(UserSeeder, RoleSeeder)
    await this.call([PermissionSeeder])
  }
}

Run seeders through CLI:

sh
npx arkorm seed
npx arkorm seed DatabaseSeeder
npx arkorm seed --all