Skip to content

Seeding

VeloxTS provides an expressive seeding system for populating your database with test data.

Terminal window
velox db:seed
Terminal window
velox make seeder users

Creates database/seeders/users.ts:

import { defineSeeder } from '@veloxts/orm';
import { db } from '@/database';
export default defineSeeder({
name: 'users',
run: async () => {
await db.user.createMany({
data: [
{ name: 'Alice', email: 'alice@example.com' },
{ name: 'Bob', email: 'bob@example.com' },
],
});
},
});

Generate realistic data with factories:

import { defineFactory } from '@veloxts/orm';
import { faker } from '@faker-js/faker';
export const userFactory = defineFactory({
model: 'user',
definition: () => ({
name: faker.person.fullName(),
email: faker.internet.email(),
createdAt: faker.date.past(),
}),
});
// Usage
await userFactory.create(); // Single user
await userFactory.createMany(10); // 10 users
await userFactory.make(); // Create without saving
CommandDescription
velox db:seedRun all seeders
velox db:seed --seeder=usersRun specific seeder
velox db:seed --freshFresh database + seed