Skip to main content

Recipes

Generate a spec for specific entities only

quik faker:spec:generate --entities User Product Order

Generate fake rows for one model

quik faker:generate --spec ./config/faker.spec.json --model User

Anonymize existing PII

Switch a model's spec entry to "mode": "anonymize", then run:

quik faker:anonymize --spec ./config/faker.spec.json --model User

Anonymize mode reads existing rows in batches, replaces the configured fields, and writes them back in place — PKs, FK columns, and skip: true fields are preserved.

Programmatic generation

import { QFakerGenerateEngine, QFakerAnonymizeEngine } from '@quik/faker';
import type { QFakerSpec } from '@quik/faker';

const spec: QFakerSpec = { /* … */ };

const generator = new QFakerGenerateEngine();
await generator.run(spec, 'User');

const anonymizer = new QFakerAnonymizeEngine();
await anonymizer.run(spec, 'User');

Build a spec programmatically

import { generateSpec } from '@quik/faker';

const spec = generateSpec(['User', 'Product']);

Checklist

  • Use unique: true for fields with unique constraints (retries up to 100 times per row in generate mode).
  • Set seed in the spec for reproducible fixtures in CI.
  • Keep locale aligned with the framework's 8 supported locales when generating locale-sensitive data.