Jailer  by Wisser

Streamline database management with subsetting and relational browsing

Created 15 years ago
3,163 stars

Top 14.8% on SourcePulse

GitHubView on GitHub
Project Summary

Jailer is a robust open-source tool designed for database subsetting and relational data browsing. It addresses the challenge of managing and analyzing large production databases by enabling the creation of consistent, referentially intact data subsets for development, testing, and local analysis. Its target audience includes developers, QA engineers, and data analysts who require manageable, representative datasets without compromising data integrity. The primary benefit is significantly improved efficiency in development and testing workflows, alongside simplified troubleshooting using production-like data samples.

How It Works

Jailer employs two core functionalities: a Subsetter and a Data Browser. The Subsetter extracts data slices that maintain referential integrity, exporting them as topologically sorted SQL DML, DbUnit records, JSON, YAML, or XML. This approach ensures data consistency across related tables, crucial for accurate testing. The Data Browser facilitates bidirectional navigation through database relationships, identified via foreign keys or user-defined associations, coupled with an SQL console featuring code completion and metadata visualization.

Quick Start & Requirements

  • Installation: Available as Windows MSI (Jailer-database-tools-n.n.n.msi), Linux DEB (jailer-database-tools_n.n.n-x64.deb), or a cross-platform ZIP (jailer_n.n.n.zip) for CLI/GUI usage.
  • Build: Requires ant and Git. Clone the repository: git clone https://github.com/Wisser/Jailer.git.
  • Prerequisites: Java Runtime Environment (implied), JDBC drivers for target databases.
  • Demo: Includes a demo database for immediate evaluation.
  • Documentation: API (https://wisser.github.io/Jailer/api.html), Filters (https://wisser.github.io/Jailer/filters.html), Subset by Example (https://wisser.github.io/Jailer/subset-by-example.html), FAQ (https://wisser.github.io/Jailer/faq.html#multiuser).

Highlighted Details

  • AI Query Assistant (Coming Soon): Planned integration to generate SQL from natural language queries using OpenAI or Anthropic APIs.
  • Data Export Versatility: Supports SQL-DML, JSON, YAML, XML, and DbUnit formats.
  • DDL Generation: Integrates Liquibase for creating database schemas from scratch.
  • Advanced SQL Console: Features code completion, syntax highlighting, metadata visualization, and SQL statement analysis for dynamic filter addition.
  • Relationship Handling: Detects and breaks cycles in parent-child relationships; offers "Subset by Example" functionality.
  • Programmatic Access: Provides an API for data export/import automation (https://wisser.github.io/Jailer/api.html).

Maintenance & Community

  • Home: https://github.com/Wisser/Jailer or http://jailer.sourceforge.net/.
  • Forum: https://sourceforge.net/p/jailer/discussion/.
  • Support: rwisser@users.sourceforge.net.
  • The project acknowledges code and financial contributors, encouraging further support.

Licensing & Compatibility

  • The project's license is not explicitly stated in the provided README, which presents a significant ambiguity for adoption decisions.
  • Compatibility is broad due to JDBC, with specific optimizations for PostgreSQL, Oracle, MySQL, MariaDB, Microsoft SQL Server, IBM Db2, SQLite, Sybase, Amazon Redshift, Firebird, Informix, H2, and Exasol.

Limitations & Caveats

  • The highly anticipated AI Query Assistant feature is still under development ("Coming Soon").
  • The absence of a clearly defined open-source license is a critical blocker for assessing commercial use or derivative works.
  • While broadly compatible, optimal results are noted for a subset of databases.
Health Check
Last Commit

1 day ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
11 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.