The LiquibaseTask is a generic task for liquibase commands that don't require extra command parameters. You can run commands like updateSQL, validate or updateTestingRollback with this task but not rollbackToDateSQL since it requires a date parameter after the command.
Table C.58: Attributes
| Name | Type | Description | Default | Required |
|---|---|---|---|---|
jar | String | Location of the Liquibase jar file. | n/a | Yes |
classpath | String | Additional classpath entries. | n/a | Yes |
changeLogFile | String | Location of the changelog file in which the changes get written or read from. | n/a | Yes |
username | String | The username needed to connect to the database. | n/a | Yes |
password | String | The password needed to connect to the database. | n/a | Yes |
url | String | The JDBC Url representing the database datasource, e.g jdbc:mysql://localhost/mydatabase | n/a | Yes |
command | String | What liquibase command to run. Currently only supports commands that doesn't require command parameters, such as validate and updateSQL. | n/a | Yes |
display | Boolean | Whether to display the output of the command. Only used if passthru isn't true. | false | No |
passthru | Boolean | Whether to use PHP's passthru() function instead of exec(). True by default for backwards compatibility. When true, the attributes display, outputProperty and checkReturnare ignored. | true | No |
checkreturn | Boolean | Whether to check the return code of the execution, throws a BuildException when returncode != 0. | false | No |
outputProperty | String | Property name to set output value to from the execution. Ignored if passthru attribute is true. | n/a | No |
<liquibase
jar="./vendor/alcaeus/liquibase/liquibase.jar"
classpathref="./libs/mysql-connector-java.jar"
changelogFile="./DB/master.xml"
username="${deploy.user}"
password="${deploy.password}"
url="jdbc:mysql://${database.host}/${database.name}"
display='true'
checkreturn="true"
passthru='false'
outputProperty="liquibase.updateSQL.output"
command="updateSQL"
>
<parameter name="logLevel" value="info" />
<property name="tablename" value="Person" />
</liquibase>
The nested parameters in the example above will result in the command:
--logLevel='info' updateSQL -Dtablename='Person'
parameter
Use these nested parameter tags to set optional liquibase commands like --logLevel or --defaultsFile.
Table C.59: Attributes
| Name | Type | Description | Default | Required |
|---|---|---|---|---|
name | String | Name of the liquibase parameter. Do not include the '--'. | n/a | Yes |
value | String | Value of the liquibase parameter. | n/a | Yes |
property
These tags are used to set what Liquibase calls "Change Log Properties" which are used for substitution in the change log(s). Note that they are not the same thing as regular Phing properties.
Table C.60: Attributes
| Name | Type | Description | Default | Required |
|---|---|---|---|---|
name | String | Name of the property. Do not include the '-D'. | n/a | Yes |
value | String | Value of the property. | n/a | Yes |