Search code examples
databaseliquibase

Why and when Liquibase?


I have searched for this answer on stack overflow, but I couldn't find any questions on this. I am new to Liquibase and want to learn

  • Why Liquibase?
  • When exactly one should use Liquibase in the project?

I know that this is to keep all database changes in one place but the similar can be done by creating a simple SQL files in some repository system and keep updating it with time.


Solution

  • The key differentiator between a self-managed schema create file and Liquibase (or other schema migration tools) is that the latter provides a schema changelog. This is a record of the schema changes over time. It allows the database designer to specify changes in schema & enables programmatic upgrade or downgrade of the schema on demand.

    There are other benefits, such as:

    • Database vendor independence (this is questionable, but they try)
    • automated documentation
    • database schema diffs

    One alternative tool is flyway.

    You would choose to use a schema migration tool when you want or need to automatically manage schema updates without losing data. That is, you expect the schema to change after your system has been deployed to a long-lived environment such as a customer site or stable test environment.