Skip to content

vs. other tools

Database subsetting is a well-trodden space. CloneDB’s bet is that the engine is largely solved — the differentiation is in the workflow around it: a config generated from your schema and kept in sync as it drifts, and a re-runnable upsert that refreshes a live dev database in place.

ToolLangSubset closureConfigLoad modelMasking
CloneDBRustupstream + opt-in downstream cascadegenerated, regeneratable (keeps edits)idempotent upsert into a live DB, or SQL dumpplanned (per-column seam)
GreenmaskGobidirectional, null-awarehand-written YAMLdump → pg_restorerich
Tonic StructuralSaaSbidirectional (patented)UIupsert or dumprich
JailerJavabidirectional, restriction-gatededitable re-runnable modelSQL / DbUnit export, or upsert in placelimited
fixturizeGobidirectional (composite/cyclic)hand-writtentruncate + loadPII auto-discovery
Redgate rgsubset.NETFK-aware (auto-detected)editable, auto-classifiedprovision via cloneyes (rganonymize)

Every tool above is actively maintained as of mid-2026. What sets CloneDB apart is the combination of two things — neither is unique on its own: a config generated from the live schema and regenerated while preserving your edits, and an idempotent upsert that refreshes a live dev database in place. Jailer already re-derives its data model from the schema and preserves your edits, and both Jailer and Tonic offer an upsert-style write. But, as far as we can tell, no other tool pairs a single regeneratable config with a re-runnable, referentially-consistent subset refresh into a live database.

  • Config lifecycle. Generate a single config from your schema, then regenerate to absorb schema changes while preserving your filters, virtual FKs, and comments in place. Greenmask and fixturize have you hand-author subset conditions. Jailer goes furthest of the others — it auto-generates and re-derives its data model (tables + FK associations) from the live schema — but keeps that separate from a hand-authored extraction model; CloneDB folds the schema-derived structure and your edits into one regeneratable file.
  • Refresh model. A re-runnable upsert into a live dev database, rather than a one-shot dump/restore. Tonic and Jailer also offer an upsert (add/update) write mode; what’s distinct here is pairing that write with the regeneratable config, so a single command refreshes a referentially-consistent subset in place.
  • Workflow ergonomics. Named scopes and ad-hoc CLI seeds (“pull this one account”) for everyday development, plus --watch / scheduled refresh.
  • Cloud-native auth. First-class AWS IAM, GCP IAM, Secret Manager, env, .env, and script credential providers — auth is a pluggable seam, not a bare connection string.
  • One Rust binary. No pg_dump shell-out, no server, no JVM. There is no other actively maintained Rust subsetter — the prior Rust entrant, Replibyte, is unmaintained (see below).
  • Anonymization. Greenmask and Tonic ship rich PII transformer libraries (fixturize and Redgate mask too). CloneDB v1 builds the per-column seam but defers the maskers.
  • Schema/DDL rebuild. Tools that wrap pg_dump/pg_restore (Greenmask) or provision a clone (Redgate) can rebuild a database from nothing. CloneDB loads data into a target whose schema already exists (e.g. from your migrations).
  • Maturity & UI. Jailer (since 2007) and Tonic’s hosted UI are more battle-tested and friendlier for people who don’t want a CLI.

A related but different category clones or branches a whole database rather than reducing it — Postgres.ai Database Lab, Neon branching, Supabase branching. Postgres.ai and Neon hand you a full copy almost instantly (copy-on-write), but it’s the entire dataset (Supabase branches instead start empty and replay your migrations); either way there’s no referential slice, no size reduction, no PII removed. CloneDB instead produces a small, referentially-correct subset you can hand to a teammate or load anywhere. If you want a fast full copy or a fresh branch, reach for those; if you want a small valid slice, that’s subsetting.

A few once-prominent tools are no longer good options, but you’ll see them referenced:

  • Neosync — subset + mask + orchestration (Go server + Temporal), now discontinued: acquired in August 2025, the repo is archived, and the hosted service is offline.
  • Snaplet — the real-data snapshot/subset tool was archived in 2026 after the company wound down; the surviving seed project is synthetic-data only.
  • Replibyte — the earlier Rust entrant, now unmaintained (no release since 2022, last commits in 2024); subsetting shipped for Postgres but was never fully completed.
  • Tonic Condenser (OSS Python) and pg_sample (Perl) — older OSS subsetters, now effectively dormant.
  • Referentially-correct dev slice you refresh often, with a config that survives schema drift, loaded into an existing schema → CloneDB.
  • Heavy built-in anonymization, or rebuilding a full database including DDL today → Greenmask (OSS) or Tonic (commercial).
  • A mature GUI to explore relationships and extract by hand → Jailer.
  • A fast full copy or branch rather than a subset → a thin-clone / branching tool (Database Lab, Neon, Supabase).