title: Grails db-migration plugin - sql vs 'bundled changes'
body: <p>Background:
  I have a backend for web application written in Grails, which is communicating with MySQL database. I am using the Grails database migration plugin to control the database structure, with updateOnStart set to true (I use the plugin's command line interface rarely).</p>
  
  <p>Question:
  Is there any practical difference between using SQL queries and 'bundled changes' in the change sets?</p>
  
  <p>Example:
  Is there any reason why I shoul e.g. favour:</p>
  
  <pre><code>addColumn(tableName: 'table_x'){
      column(name: 'new_column', type: 'int', defaultValue: 0){
          constraints(nullable: 'false')
      }
  }
  </code></pre>
  
  <p>over</p>
  
  <pre><code>sql(sql: 'ALTER TABLE table_x ADD COLUMN new_column INT NOT NULL DEFAULT 0;')
  </code></pre>
  
  <p>? Or those two are completely interchangeable?</p>