Populate the database with believable, demo-ready data.
Steps
- Find the database schema (look for schema files, migrations, or ORM models).
- Understand the relationships between tables — seed in dependency order (parents before children).
- Generate seed data that looks real:
- Names: actual human names, not "User 1"
- Dates: recent and spread out naturally, not all the same timestamp
- Content: realistic sentences/descriptions, not lorem ipsum
- Numbers: plausible ranges (ages 18–65, prices $9.99–$299, ratings 3.2–4.9)
- Write a seed script using the project's existing DB client. Match the style of any existing seed/fixture files.
- Run the seed script.
- Verify by querying a count from each seeded table.
Data volume defaults
- Main entity (users, projects, posts): 10–20 records
- Related entities: 2–5 per parent
- Junction/many-to-many: realistic distribution, not every combination
Rules
- Never truncate/drop tables unless the user explicitly says to reset
- If a seed script already exists, add to it rather than replace it
- Use deterministic data (hardcoded arrays) not random — results should be reproducible
- If there's a
created_at field, spread dates over the last 90 days
- Prioritize data that makes the UI look good for a demo (variety, completeness, no awkward empty states)