Pages

Friday 9 August 2013

Comparison between Flyway and Liquibase

Comparison between Flyway and Liquibase


Features supported by Liquibase
  1. Liquibase XML: - Smallest common denominator DB-independent format. It frees you from writing DDL and is compatible across DBs. Vendor lock-in (may or may not be an issue).
  2. Liquibase annotated SQL: - SQL with Liquibase metadata in comments (must be present). DDL gets converted to Liquibase XML with custom SQL blocks at runtime. May or may not be compatible across DBs.
  3. Refactoring: - All database change modelled as a "refactoring". Makes rollback feasible.
  4. SQL Scripts: - Generation of SQL scripts for DBA review.
  5. Multiple Databases: - Liquibase supports multiples databases; It has the option to describe your changes in a database-neutral manner so the same upgrade script can be used with multiple database types.
  6. Execution: - Conditional execution of changesets (based on DBcontext, or whether the changeset has been altered).

Features supported by Flyway

  1. Plain SQL: - Regular DDL SQL file. May or may not be compatible across DBs. No special annotations. DB structure dumps using native DB tools may be used as is. No tool specific constructs. No lock in.
  2. Procedures/Functions: - It support DB dumps including PL/SQL, T-SQL or MySQL and PostgreSQL stored procedures.
  3. Java migrations: - Migrations are Java classes using the JDBC API. Great for dealing with LOBs and complex data transformations. May or may not be compatible across DBs. Vendor lock-in (may or may not be an issue).
  4. Convention Over Configuration: - Classpath Scanning to automatically discover Sql and Java migrations.
  5. Highly reliable: - Safe for cluster environments (Multiple machines can migrate in parallel).
  6. Cloud support: - Runs on Google App Engine with full support for Google Cloud SQL.
  7. Auto-migration on Startup: - Ship migrations together with the application and run them automatically on startup using the API.
  8. Fail fast: - Inconsistent database or failed migration prevents app from starting.
  9. Schema Clean: - Drop all tables, views, triggers, from a schema without dropping the schema itself

Summary
  • FlyWay is "lower level" with you specifying exactly the SQL you want ran whereas Liquibase is "higher level" with you specifying what you want changed and Liquibase computing the SQL.
  • FlyWay manages changes by filename whereas Liquibase manages changes by order in a file.

References:-
http://stackoverflow.com/questions/8418814/db-migration-tool-liquibase-or-flyway

Please find below the link for feature comparison:-

No comments:

Post a Comment