TypeScript icon, indicating that this package has built-in type declarations

0.4.0 • Public • Published


This module contains a mixin to run seeders to populate tables.

Stability: ⚠️Experimental⚠️

Experimental packages provide early access to advanced or experimental functionality to get community feedback. Such modules are published to npm using 0.x.y versions. Their APIs and functionality may be subject to breaking changes in future releases.


npm install --save loopback4-seeder

Basic use

Use the mixin

This module provides a mixin for your Application that enables convenience methods.

import {SeedMixin} from 'loopback4-seeder';

class MyApplication extends SeedMixin(Application) {}

Implement the SeedMixinInterface

Optionally you can implement the SeedMixinInterface in the constructor of your custom Application class.

By doing that you can directly use the function loadSeeds without creating any seeder classes to load the data from files.

import {SeedMixin, SeedMixinInterface} from 'loopback4-seeder';
import json from './dummy.json';

export class MyApplication extends SeedMixin(Application) implements SeedMixinInterface {
  async loadSeeds(filterClasses?: string[]): Promise<void> {
    if (!filterClasses?.includes('Dummy'))
      await this.loadByModel(json, await this.getRepository(DummyRepository), Dummy);

Create seeder

We can create an instance of Seeder.

import {Seeder, seeder} from 'loopback-seeder';

// Create a seed
export class DummySeeder extends Seeder {
  async beforeSeed(): Promise<void> {
    // Optionnally, run before seed to delete all data by example

  async seed(): Promise<void> {
    // Run you seed code

Add seed script

To be able to run the seeds, you will need to create a src/seed.ts file containing the next script:

import {Application} from './application';

export const seed = async (args: string[]) => {
  const app = new Application();
  await app.boot();
  await app.load(args);

  // Connectors usually keep a pool of opened connections,
  // this keeps the process running even after all work is done.
  // We need to exit explicitly.

seed(process.argv).catch(err => {
  console.error('Cannot seed database schema', err);

Then you will need to add a new script inside your package.json file, like:

  "scripts": {
    "seed": "node ./dist/seed"

Run seed command

Seed database (populate database):

npm run seed

Seed database, only for a specific class (Dummy seeder):

npm run seed Dummy


To display debug messages from this package, you can use the next command:

DEBUG=loopback:seeder npm run seed


Run npm test from the root folder.



Package Sidebar


npm i loopback4-seeder

Weekly Downloads






Unpacked Size

36.5 kB

Total Files


Last publish


  • emulienfou