Jailer

Jailer

Database subsetting and relational data browsing

Description

Getting usable test data into a development environment runs into the same wall every time: copying production is impractical at hundreds of gigabytes and drags real user data along with it, while hand-picking rows creates a different problem — you extract the orders but not their customers, products and payment records, so the import fails on foreign keys. Jailer exists for exactly this: start from a few rows in one table and it follows the foreign keys to collect everything related, producing a slice that is referentially intact on its own.

The other half is the data browser. Where a traditional client makes you write a chain of JOINs to see what an order relates to, Jailer lets you walk the foreign keys in both directions — open EMPLOYEE, click a row and expand its DEPARTMENT and the PROJECTs it participates in, with lines drawn between result windows showing which row connects to which. Relationships can come from declared foreign keys or ones you define yourself.

Export covers SQL sorted topologically so inserts never violate constraints, plus JSON, YAML, hierarchical XML and DbUnit datasets. The same machinery works in reverse for archiving: removing obsolete data along with its dependents without breaking integrity. Java-based, works against the major relational databases, open source.

Features



Referentially intact subsets: give it a starting table and a filter and it follows the relationships to gather every related row, yielding a self-contained dataset that imports without dangling foreign keys.

Relational browsing: navigate between tables along foreign keys in both directions, expanding a row into its related records, with connecting lines between result windows showing which rows correspond — no hand-written JOINs to trace a path.

User-defined relationships: beyond declared foreign keys, associations can be defined manually, which is what makes legacy schemas held together by convention workable.

Topologically sorted SQL: generated INSERT statements are ordered by dependency so running them in sequence does not trip constraint errors.

Multiple export formats: SQL alongside JSON, YAML, hierarchically structured XML and DbUnit datasets, ready to serve as fixtures for automated tests.

Archiving and cleanup: the same relationship analysis removes obsolete data and its dependent rows, shrinking a database without violating integrity.

SQL console: a built-in console runs statements and shows results, keeping browsing and querying in one window.

Data model editing: the relationship model between tables can be edited and saved so extraction rules are reused rather than reconfigured each time.

Database-agnostic: built on Java and JDBC, connecting to Oracle, MySQL, PostgreSQL, SQL Server, DB2 and other major relational databases.

Open source: free to use with distributions for Windows, macOS and Linux.