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.59: 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 checkReturn are 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.60: 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.61: 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 |