Liquibase Database Schema Management proof of concept

Background

Our database schema is managed via SQL scripts and Hibernate configuration files. This means our database is hard to refactor. Consequently, it accumulates (and has accumulated) a lot of cruft.

We want to make it easier to refactor. To do this, we need a proof of concept for using Liquibase in our project. Liquibase is a tool that enables easy database refactoring, and allows us to keep our schema in a single, easy to understand, database independent format.

A complete proof of concept would demonstrate:

  • Generating the database schema using Liquibase instead of SQL scripts
  • Using Liquibase from Maven, instead of running SQL from Maven
  • Having a process for updating Hibernate configurations - this can be a manual process, but needs to be documented.
  • Integrating with our existing database upgrade mechanism - code modifications may be needed here.
  • Ideally, we'd have a documented process for making a database change, that included: _ Updating Liquibase files _ Updating Hibernate configurations * Creating a Java database upgrade (or having this done automatically somehow)

Status - Complete

After successful proof of concept Mifos start using Liquibase for database upgrade process.