finds.dev← search

// the find

evilmartians/evil-seed

★ 568 · Ruby · MIT · updated Jul 2026

A Gem for creating partial anonymized dumps of your database using your app model relations.

EvilSeed is a Ruby gem that generates partial, optionally anonymized SQL dumps of a Rails database by walking ActiveRecord associations from a set of 'root' models you define. It's aimed at teams who need realistic-but-safe staging data without restoring full production dumps or paying the storage/time cost of copying everything.

The include/exclude DSL using association-path regexes (e.g. 'forum.questions.answers') is a genuinely useful way to prune an association graph that's more tangled than you'd expect, and the per-association limit_associations_size/limit_deep controls are the kind of thing you only add after getting burned by a runaway dump. The anonymize DSL cleanly separates 'replace this column with fake data' from arbitrary attribute mutation via customize, and both work on raw attribute hashes rather than instantiated records, which avoids triggering callbacks/validations during dump generation. It outputs a plain SQL file, so restoring doesn't depend on the gem at all — any psql/mysql/sqlite3 client works, and the README gives real, working advice for restoring dumps with circular FK dependencies via deferrable constraints.

The maintainers flag test coverage as poor and HABTM traversal as 'nonintuitive' in their own FIXME section — that's a direct admission that the association-walking logic, which is the entire value of the tool, has known correctness gaps. The CI badge still points at Travis CI, a service that's been effectively dead for Ruby OSS for years, which suggests the automated checks aren't actually running even though there's a recent push. There's no documented behavior for memory usage on large graphs — it builds the dump via a deep-first traversal with no mention of streaming output or capping total record count across the whole run, so a mis-scoped root (easy to do given how 'amazed' the README says you'll be at how connected your models are) can still blow up a box with a large dataset. It's also Rails/ActiveRecord-only and ties anonymization to Faker implicitly, so there's no path for a non-Rails or non-Ruby stack to reuse any of this.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →