undeexcepturi
Version:
TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, PostgreSQL and SQLite databases as well as usage with vanilla JavaScript.
24 lines (18 loc) • 753 B
text/typescript
import { EntityManager } from '@mikro-orm/core';
import { Seeder } from '@mikro-orm/seeder';
import { FilterFactory, FilterValueFactory, ProjectFactory, RiskFactory } from './factories';
export class DatabaseSeeder extends Seeder {
async run(em: EntityManager): Promise<void> {
const NUM_FILTER_VALUES = 6;
const filters = new FilterFactory(em).each(entity => {
entity.values.set(new FilterValueFactory(em).make(NUM_FILTER_VALUES));
}).make(5);
new ProjectFactory(em).makeOne({
filters,
risks: new RiskFactory(em).each(risk => {
risk.filterValues.set(filters.map(filter => filter.values.getItems()[Math.floor(Math.random() * NUM_FILTER_VALUES)]));
}).make(100),
});
await em.flush();
}
}