Database Seed Generator
Reads your project schema and generates realistic, idempotent seed scripts that respect foreign-key ordering and D1 limits.
Dev & CodingIntermediate★ 1,034⑂ 105AI score 9/10Last updated: Sep 29, 2026
What it does
- Scans the project for schema definitions (
src/db/schema.ts,drizzle/*.sql,schema.sql,prisma/schema.prisma) and reads them. - Maps tables, columns, constraints (NOT NULL, UNIQUE, DEFAULT) and foreign keys, then builds a parent-before-child insert order — including a two-pass NULL-then-UPDATE strategy for circular dependencies.
- Asks for purpose (dev/demo/testing), row volume and domain context, then generates domain-appropriate data: real-sounding names,
@example.comemails, ISO 8601 dates, realistic prices — never "test123" or Lorem ipsum. - Emits a Drizzle TypeScript seed (
scripts/seed.ts) or raw D1 SQL (seed.sql), with the run command documented at the top. - Makes seeds re-runnable: delete-then-insert for dev/testing,
onConflictDoUpdateupserts for demo data. - Works around Cloudflare D1 gotchas: ~10 rows per INSERT, 100 bound-parameter cap, no BOOLEAN/DATETIME types, JSON stored as TEXT.
Who it's for
- Developers on the Cloudflare Workers + D1 + Drizzle stack
- Backend/fullstack engineers tired of hand-filling dev databases
- Anyone who needs polished demo data for screenshots and product demos
- Teams wanting systematic test fixtures with edge cases (empty strings, unicode, max lengths)
Examples
- Blog schema — say "seed database" and get a
scripts/seed.tsinserting users → categories → posts → comments → tags → post_tags in dependency order. - E-commerce demo data — ask for "100 rows of demo data for a store" and receive products with believable names and price ranges using upserts so user-created rows survive.
- Raw D1 SQL — get a batched-by-10
seed.sqlyou run withnpx wrangler d1 execute DB --local --file=./scripts/seed.sql. - Reproducible fixtures — uses a seeded PRNG (seed 42) so every run produces byte-identical test data.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/jezweb/claude-skills/HEAD/archive/plugins/cloudflare/skills/db-seed/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the archive/plugins/cloudflare/skills/db-seed folder from the GitHub repo jezweb/claude-skills into my ~/.claude/skills/jezweb-db-seed/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/jezweb/claude-skills.git /tmp/claude-skills && mkdir -p ~/.claude/skills/db-seed && cp -r /tmp/claude-skills/archive/plugins/cloudflare/skills/db-seed/* ~/.claude/skills/db-seed/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and clone the repo:
git clone https://github.com/jezweb/claude-skills.git - Create your personal skills folder:
mkdir -p ~/.claude/skills/db-seed - Copy the skill in:
cp -r claude-skills/archive/plugins/cloudflare/skills/db-seed/* ~/.claude/skills/db-seed/ - Verify with
ls ~/.claude/skills/db-seed— you should seeSKILL.md. - Start
claudefrom inside the project that contains your database schema. - Ask something like "generate seed data for this database" — the skill triggers automatically. Answer its questions about purpose, volume and domain.
- Run the generated file:
npx tsx scripts/seed.tsfor TypeScript, ornpx wrangler d1 execute <DB_NAME> --local --file=./scripts/seed.sqlfor SQL. - ⚠️ The default seed may DELETE existing rows — always run against a local/dev database first, never production.
View source on GitHub ↗License: MIT