LLaraNode
Database Package

Seeders

Seeders populate your database with test data.

Seeders

Seeders populate your database with test data.

Creating Seeders

pnpm exec artisan make:seeder UserSeeder

Writing Seeders

// database/seeders/UserSeeder.ts
import { DB } from "@lara-node/db";

export class UserSeeder {
  async run() {
    await DB.table("users").insert({
      name: "John Doe",
      email: "[email protected]",
      password: "hashed_password",
    });
  }
}

Using Model Factories

import { User } from "../app/Models/User";

export class UserSeeder {
  async run() {
    await User.create({
      name: "John Doe",
      email: "[email protected]",
      password: "hashed_password",
    });

    // Create multiple
    for (let i = 0; i < 10; i++) {
      await User.create({
        name: `User ${i}`,
        email: `user${i}@example.com`,
        password: "hashed_password",
      });
    }
  }
}

Running Seeders

# Run all seeders
pnpm exec artisan db:seed

# Run specific seeder
pnpm exec artisan db:seed --class=UserSeeder

Programmatic Seeding

import { runSeeders } from "@lara-node/db";
import { UserSeeder } from "./seeders/UserSeeder";

await runSeeders([UserSeeder]);

Database Seeder

Create a main seeder that calls others:

// database/seeders/DatabaseSeeder.ts
import { UserSeeder } from "./UserSeeder";
import { PostSeeder } from "./PostSeeder";

export class DatabaseSeeder {
  async run() {
    await new UserSeeder().run();
    await new PostSeeder().run();
  }
}

Wiping Database

pnpm exec artisan db:wipe

Next Steps