Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jeremylongshore/generating-database-seed-data
Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u...
Passed 24 of 24 test cases with the skill, and 21 of 24 without it.
and 1 more in the full report
3 fixed21 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 3 test cases the skill fixed. Same model, same prompt, with and without the skill.
I am setting up a mock dataset for a social network database containing profiles, posts, comments, and likes. Can you produce a raw SQL seeding file for this structure? In addition to the main SQL code, please output the underlying Faker generator configurations for each column, the step-by-step table loading sequence based on foreign keys, a set of SQL queries to test constraint validity afterwards, and a per-table volume scale configuration.
| Checked | Without skill | With skill |
|---|---|---|
| The response includes complete raw SQL insertion statements for profiles, posts, comments, and likes without cutting off mid-statement. | Missed | Passed |
| The loading sequence specifies placing profiles before posts, posts before comments, and posts before likes. | Passed | Passed |
| The output contains explicit SQL validation queries checking foreign key integrity and row counts after insertion. | Missed | Passed |
The instructions your model reads when the skill loads.
Generate realistic database seed scripts that populate development and testing environments with representative data. This skill creates seed data that respects foreign key relationships, unique constraints, check constraints, and data type validations using Faker libraries (faker.js, Faker for Python, or raw SQL with random functions).
@faker-js/faker (Node.js), faker (Python), or Bogus (.NET)Analyze the database schema to catalog all tables, columns, data types, constraints, and foreign key relationships. Build a dependency graph where parent tables (referenced by foreign keys) must be seeded before child tables.
Determine the seeding order by topologically sorting the dependency graph. Tables with no foreign keys are seeded first (users, categories, products), then tables referencing them (orders, reviews), then junction tables and deeply nested tables last.
Map each column to an appropriate Faker generator based on column name and data type:
first_name, last_name -> faker.person.firstName(), faker.person.lastName()email -> faker.internet.email() with unique enforcementphone -> faker.phone.number()address, city, state, zip -> faker.location.*created_at, updated_at -> faker.date.between({ from: '2023-01-01', to: '2024-12-31' })price, amount -> faker.commerce.price({ min: 1, max: 999 })description, bio -> faker.lorem.paragraph()status -> Random selection from CHECK constraint values or enum valuesuuid -> faker.string.uuid()Generate foreign key values by referencing previously inserted parent records. Store parent IDs in arrays during generation and randomly select from them for child records. Ensure every parent has at least one child (if the relationship is expected) and distribute children realistically (e.g., Zipf distribution where some users have many orders, most have few).
Handle unique constraints by tracking generated values in a Set and regenerating on collision. For email addresses, append a counter or use faker.internet.email({ firstName, lastName }) with unique names.
Respect CHECK constraints and ENUM types by reading the allowed values from the schema and restricting random selection to valid options. For range constraints (CHECK (age >= 18 AND age <= 120)), configure Faker to generate within the valid range.
Generate the seed script in the appropriate format:
INSERT INTO users (name, email, ...) VALUES ('John Doe', '[email protected]', ...); with proper escapingprisma.user.createMany() or repository.save()test cases passed, vs 21 / 24 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.