How does LiquiBase compare to tools that compare development database with production databases to generate change lists?
LiquiBase works better because it understands what the changes are. For example, a database comparison program would simply see the “person” table on integration has a “firstname” and a “lastname” column, but on live, the “person” table has a “name” column. It would report that you need to drop the “name” column and add a “firstname” and a “lastname” column. While this would leave you with the correct schema, you would lose everyone’s name in the process. With LiquiBase, you would have a changeset that says “rename ‘name’ to ‘lastname’ and add a ‘firstname’ column” or, even better, “split the name column on a space and place the values in new ‘firstname’ and ‘lastname’ columns, then drop the ‘name’ column.” Knowing why they are different allows changes to production databases without the fear of losing valuable data.
Related Questions
- How does LiquiBase compare to tools that compare development database with production databases to generate change lists?
- How to compare the structure of two databases and how to copy over the structure of a database into a new one?
- While dropping and creating the database console do I need down time on production databases?