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: truefor fields with unique constraints (retries up to 100 times per row in generate mode). - Set
seedin the spec for reproducible fixtures in CI. - Keep
localealigned with the framework's 8 supported locales when generating locale-sensitive data.