Modifying generated SQL

Although Liquibase supports most standard SQL statements with its change tags, there are times when the generated SQL needs to be slightly different for your particular needs. Examples include changing datatypes or adding additional vendor-specific clauses such as “ENGINE INNODB” to CREATE TABLE statements. Since 1.9

Sample

<changeSet  id="1"  author="nvoxland">  
    <createTable  tableName="person">  
        <column  name="id"  type="bigint"/>  
        <column  name="firstname"  type="varchar(255)"/>  
        <column  name="lastname"  type="varchar(255)"/>  
    </createTable>  
    <modifySql>  
         <replace  replace="bigint"  with="long"/>  
    </modifySql>  
    <modifySql  dbms="mysql">  
         <append  value=" engine innodb"/>  
    </modifySql>  
</changeSet>

Available attributes

Attribute Description
dbms The type of a database which that changeset is to be used for. When the migration step is running, it checks the database type against this attribute. Valid database type names are listed on the supported databases page. It is possible to list multiple databases separated by commas. You can also specify that a changesetis NOT applicable to a particular database type by prefixing with !. The keywords all and none are also available.
context List of Contexts in which to run the SQL modification. If not specified, is applied in all contexts Since 2.0
applyToRollback Should the SQL modification be applied to rollback statements? Default='false' Since 2.0

Available sub-tags

prepend

Adds SQL to the beginning of the statement.

Available attributes

Attribute Description
value Text to add to beginning of statement

append

Adds SQL to the end of the statement.

Available attributes

Attribute Description
value Text to add to end of statement

replace

Replaces all instances of the text specified.

Available attributes

Attribute Description
replace Text to replace
with Text to replace with

regExpReplace

Replaces all instances of the regular expression specified.

Available attributes

Attribute Description
replace Regular expression specifying text to replace
with Text to replace with