Translations of this page?:

Change Log Parameters

Since LiquiBase 1.7

LiquiBase allows dynamic substitution of parameters in a changelog. The parameters to replace are described using the ${} syntax.

Examples

<createTable tableName="${table.name}">
     <column name="id" type="int"/>
     <column name="${column1.name}" type="varchar(${column1.length})"/>
     <column name="${column2.name}" type="int"/>
</createTable>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
 
    <property name="clob.type" value="clob" dbms="oracle"/>
    <property name="clob.type" value="longtext" dbms="mysql"/>
 
    <changeSet id="1" author="joe">
         <createTable tableName="${table.name}">
             <column name="id" type="int"/>
             <column name="${column1.name}" type="${clob.type}"/>
             <column name="${column2.name}" type="int"/>
         </createTable>
    </changeSet>
</databaseChangeLog>

Configuring parameter values

Parameter values are looked up in the following order:

  1. Passed as a parameter to your LiquiBase runner (see Ant, Command Line, etc. documentation for how to pass them)
  2. As a JVM system property
  3. In the <parameters/> block of the DatabaseChangeLog file itself.
 
manual/changelog_parameters.txt · Last modified: 2010/08/19 11:49 by nvoxland