Manage database changes and refactoring using this open-source Java-based command-line tool with support for multiple databases, formats, schema management, and source control/versioning
LiquiBase is an open-source Java-based command-line tool that gives you the possibility to administer database modifications and refactoring. Dedicated to multiple developers, the program supports XML, YAML, JSON and SQL formats, various types of databases (MySQL, PostgreSQL, Oracle, SQL Server, DB2, Firebird, SQLite), and a context-sensitive language.
It offers support for database schema management and source control/versioning. All modifications are saved inside XML files.
The usage is java -jar liquibase.jar [options] [command]
There are numerous commands implemented into this application. For instance, it’s capable of creating documentation with details about database changes (dbDoc), generating diffs to double-check if the changes are recorded in the log (diff, diffChangeLog), and auto-generating SQL scripts for DBA code review or SOX compliance (e.g. rollback SQL, rollbackToDateSQL, rollbackCountSQL, changelogSyncSQL).
It’s possible to update the database to the current version or to the changeset with the specified tab, take a snapshot with the current state, tag the current database state for future rollback, verify the changelog for errors, calculate and print the checksum for changesets, remove all saved checksums from the database log, or release all locks on the database changelog, among others.
LiquiBase doesn’t need an active database connection (updateSql) and can be executed on demand (command line, Maven, Ant) or automated (Servlet Listener, Spring Listener, JEE CDI Listener), as well as embedded and ran via its Java APIs.
As far as database refactoring is concerned, the tool permits you to indicate the exact SQL you want to run, as well as to create and manage rollback. It supports both basic and advanced commands, such as ‘create table’ and ‘drop column’, or ‘add lookup table’ and ‘merge columns’.
- JAVA 1.6+
We at AppsForMyPC have tested and used LiquiBase and it worked pretty smoothly 🙂 🙂