title: Is Liquibase recommended for migrating production data from an old database schema to a new one?
body: <p>I'm new to the world of data migration and looking into ways to migrate the data of customers using OurApp 1.0 to a new database with a schema compatible with OurApp 2.0.  I've seen a more than a few people recommending Liquibase for database change management and database refactoring tasks, which to my newbie ears sounds like it may be close to what we need.  </p>
  
  <p>However, after reading through the material on www.liquibase.org, I get the feeling that Liquibase is more about keeping the schema up to date than it is about converting lots of already existing data so that it can be persisted in the new schema.  </p>
  
  <p>Say I wanted to split a column in my Employee table called name into a  firstname and lastname column.  Liquibase would be able to alter the table by dropping the name column and adding a firstname and lastname column.  However, I get the feeling Liquibase isn't really built for me to plug in conversion code that would parse the name field of existing records in the database into a firstname and lastname and store those in their respective columns.  </p>
  
  <p>For example, say my table looked like this</p>
  
  <pre><code>id | name             | position
  *********************************
  12   Horace Slughorn    Professor
  13   Albus Dumbledore   Headmaster
  </code></pre>
  
  <p>After I ran Liquibase the name column would be replaced by a firstname and lastname column so my database schema would be correct.  But I'm guessing Liquibase is NOT a framework that lets me plug in some code that parses "Horace Slughorn" into "Horace" and "Slughorn" and stores these values in the firstname and lastname columns for that record. </p>
  
  <pre><code>id | firstname   |  lastname  | position
  *****************************************
  12   Horace         Slughorn         Professor
  13   Albus          Dumbledore       Headmaster
  </code></pre>
  
  <p>So Liquibase keeps your schema up to date, but isn't designed to help you convert your existing data so that it it matches the new schema. Is that right? </p>