Seeding
Velox TS provides database seeding through Prisma’s built-in system, with a Laravel-style API planned for future releases.
Quick Start
Section titled “Quick Start”pnpm db:seedAdd to your package.json:
{ "prisma": { "seed": "tsx prisma/seed.ts" }}Create Seed File
Section titled “Create Seed File”Create prisma/seed.ts:
import { db } from '@/database';
async function main() { // Clean existing data await db.user.deleteMany();
// Create seed data await db.user.createMany({ data: [ { name: 'Alice', email: 'alice@example.com' }, { name: 'Bob', email: 'bob@example.com' }, ], });
console.log('Seeding completed');}
main() .catch(console.error) .finally(() => db.$disconnect());Factories with Faker
Section titled “Factories with Faker”For realistic test data, use @faker-js/faker:
import { faker } from '@faker-js/faker';import { db } from '@/database';
function createFakeUser() { return { name: faker.person.fullName(), email: faker.internet.email(), createdAt: faker.date.past(), };}
// Create multiple usersawait db.user.createMany({ data: Array.from({ length: 10 }, createFakeUser),});Commands
Section titled “Commands”| Command | Description |
|---|---|
pnpm db:seed | Run seed file |
pnpm db:push --force-reset | Reset database (then run db:seed) |
Future: Velox TS Seeding API
Section titled “Future: Velox TS Seeding API”The planned API will provide an expressive, Laravel-inspired interface:
// 🚧 Planned API - not yet availableimport { defineSeeder, defineFactory } from '@veloxts/orm';
// Factory for generating fake dataexport const userFactory = defineFactory({ model: 'user', definition: (faker) => ({ name: faker.person.fullName(), email: faker.internet.email(), createdAt: faker.date.past(), }),});
// Seeder using factoryexport default defineSeeder({ name: 'users', run: async () => { await userFactory.createMany(10); },});Planned CLI commands:
| Command | Description |
|---|---|
velox db:seed | Run all seeders |
velox db:seed --seeder=users | Run specific seeder |
velox db:seed --fresh | Fresh database + seed |
velox make seeder users | Generate seeder file |
Related Content
Section titled “Related Content”- Migrations - Schema changes
- Testing - Test patterns