Skip to content

@joakimbugge/nest-mikroorm-seeder


@joakimbugge/nest-mikroorm-seeder / SeederModule

Class: SeederModule

Defined in: nest-mikroorm-seeder/src/SeederModule.ts:142

Seeder module. Import at the application root to activate seeding.

When imported as a bare class (SeederModule) all configuration uses defaults — no root seeders, runOnce enabled, MikroORM auto-resolved from the NestJS container. Use forRoot when you need to customise any of those options.

Constructors

Constructor

ts
new SeederModule(): SeederModule;

Returns

SeederModule

Methods

forFeature()

ts
static forFeature(seeders): DynamicModule;

Defined in: nest-mikroorm-seeder/src/SeederModule.ts:210

Registers seeders from a feature module into the global seeder list.

Use this to co-locate seeders with the feature module they belong to rather than listing everything in the root module. The seeders are merged with any declared in forRoot and run together on bootstrap.

Requires SeederModule or SeederModule.forRoot() to be imported somewhere in the application.

Parameters

seeders

(string | SeederCtor)[]

Returns

DynamicModule

Example

ts
// In a feature module:
SeederModule.forFeature([PostSeeder])

forRoot()

ts
static forRoot(options?): DynamicModule;

Defined in: nest-mikroorm-seeder/src/SeederModule.ts:159

Configures SeederModule at the application root with explicit options.

Seeding runs on onApplicationBootstrap, which fires after MikroORM has fully initialized — so no additional waiting or ordering is needed.

Omit options (or omit both seeders and run) when all seeders are registered via forFeature().

Parameters

options?

SeederModuleOptions = {}

Returns

DynamicModule

Examples

ts
SeederModule.forRoot({ seeders: [PostSeeder] })
ts
// Gate seeding on an env var
SeederModule.forRoot({ seeders: [PostSeeder], enabled: process.env.SEED === 'true' })

forRootAsync()

ts
static forRootAsync(options): DynamicModule;

Defined in: nest-mikroorm-seeder/src/SeederModule.ts:181

Async variant of forRoot. Use when options depend on injected providers.

Parameters

options

SeederModuleAsyncOptions

Returns

DynamicModule

Example

ts
SeederModule.forRootAsync({
  imports: [ConfigModule],
  inject: [ConfigService],
  useFactory: (config: ConfigService) => ({
    seeders: [PostSeeder],
    enabled: config.get('SEED') === 'true',
  }),
})

Released under the MIT License.