Back to all posts
AnnouncementPostgreSQLTest dataDatabase resetOpen source

Welcome to Seedmancer: reset your database in seconds

Seedmancer is a schema-first seed data manager for PostgreSQL and MySQL. Here’s why we built it and how to get from install to a reproducible test database in under five minutes.

Most teams have the same painful pattern in their test suite: a Postgres database that drifts out of sync with the scenarios their tests assume. Someone updates a fixture, another person tweaks a seed script, CI starts failing on a Tuesday for reasons no one can reproduce locally. Sound familiar?

Seedmancer exists to make “reset the database to a known state” a one-line command — locally, in CI, and across your whole team. This first post is a quick tour of what it is, why we built it, and how to try it in the next five minutes.

What Seedmancer actually does

Seedmancer is a schema-first seed data manager for PostgreSQL and MySQL. The unit of reuse is a dataset: a content-addressed snapshot of your schema fingerprint plus the CSV files that fill it.

  • Export dumps your current database into a clean, human-readable folder of CSVs tied to a schema fingerprint.
  • Seed restores any dataset back into a target environment in seconds, with safety rails for production-like names.
  • Generate uses your real schema to produce scenario-based data — “a premium user with three teammates and an expired trial” — without you hand-rolling fixtures.

The five-minute quick start

The CLI is open source and ships as a single static binary. Install it with Homebrew, point it at a database, and you’re done:

brew install KazanKK/seedmancer/seedmancer

cd your-project
seedmancer init
seedmancer export --id baseline
seedmancer seed --id baseline

That’s the entire loop. export creates a baseline, seed puts you back to that baseline whenever you want. Run it before every Playwright or Cypress suite and your tests stop depending on whatever state the previous run left behind.

Why schema-first matters

A lot of seed tooling pins data to a fragile name like seed.sql or fixtures/users.json. The moment the schema changes, those files silently rot. Seedmancer takes a different approach: every dataset is bound to a content-addressed fingerprint of the schema it was captured against.

If you change the schema, Seedmancer knows. You either regenerate the dataset against the new fingerprint or migrate it explicitly. There’s no “mystery dataset that used to work” drifting around your repo.

Built for agents and humans

The CLI ships an MCP server out of the box, so AI agents can call Seedmancer the same way you would: list datasets, describe a schema, seed an environment, generate scenario data. If you’re using Cursor, Claude Code, or any MCP-aware host, point it at seedmancer mcp and your agent gets typed tools instead of guessing at shell flags.

Where to go next

The fastest way to get a feel for it is the docs — every command has a worked example, including how to wire it into Playwright, Cypress, and CI:

We’ll be using this blog to share patterns, deeper architecture notes, and the occasional debugging story. If there’s something specific you’d like us to write about, drop us a note.