Ant diffDatabaseToChangeLog

Outputs a diff of the difference between two databases as a changelog to bring them into sync.

Syntax

<liquibase:diffDatabaseToChangeLog>
    <liquibase:database
        driver="${db1.driver}"
        url="${db1.jdbc.url}"
        user="${db1.user}"
        password="${db1.password}"/>
    <liquibase:referenceDatabase
        driver="${db2.driver}"
        url="${db2.jdbc.url}"
        user="${db2.user}"
        password="${db2.password}"/>
    <liquibase:xml
        outputFile="/path/to/diff-changelog.xml"
        encoding="UTF-8"/>
</liquibase:diffDatabaseToChangeLog>

Generate a changelog based on the difference between the two databases. Output the changelog to an XML file.

<liquibase:diffDatabaseToChangeLog>
    <liquibase:database
        driver="${db1.driver}"
        url="${db1.jdbc.url}"
        user="${db1.user}"
        password="${db1.password}"/>
    <liquibase:referenceDatabase
        driver="${db2.driver}"
        url="${db2.jdbc.url}"
        user="${db2.user}"
        password="${db2.password}"/>
    <liquibase:xml
        outputFile="/path/to/diff-changelog.xml"
        encoding="UTF-8"/>
    <liquibase:yaml
        outputFile="/path/to/diff-changelog.yaml"
        encoding="UTF-8"/>
</liquibase:diffDatabaseToChangeLog>

Generate changelog in both XML and YAML format.

Parameters

Attribute Description Required
classpathref A reference to the classpath used to run the task with. No
databaseref A reference to the database that Liquibase will connect to. Yes, unless a nested <database> element is present.
referencedatabaseref A reference to the reference database that Liquibase will connect to. Yes, unless a nested <referencedatabase> element is present.
difftypes A comma-separated list of diff types to use. No
promptOnNonLocalDatabase If set to true, a dialog box with warn you if you attempt to run the Liquibase against a database that is not on localhost. No; default is false.
driver Deprecated: Name of the database driver to connect with. No
url Deprecated: Use <database>'s url attribute instead. The database URL. No
username Deprecated: The database username to connect with. No
password Deprecated: The password to use when connecting to the database. No
defaultSchemaName Deprecated: Schema to use by default for managed database objects and Liquibase control tables. No
currentDateTimeFunction Deprecated: Overrides current date time function used in SQL. Useful for unsupported databases. No
databaseChangeLogTableName Deprecated: Overrides the name of the DATABASECHANGELOG table to use. No
databaseChangeLogLockTableName Deprecated: Overrides the name of the DATABASECHANGELOGLOCK table to use. No
referenceDriver Deprecated: The name of the database driver to connect with. No
referenceUrl Deprecated: The base database URL. No
referenceUsername Deprecated: The base database username to connect with. No
referencePassword Deprecated: The base database password. No
logLevel Deprecated: Specifies one of the following logging levels: debug, info, warning, severe, off. The default level is info. No

Nested attributes

xml, yaml, json, or txt

This task is capable of generating changelog files in multiple formats. At least one of these elements is required.

Attribute Description Required
outputFile The location to write the changelog file to. Yes
encoding The file encoding to use for the output file. No. Defaults to system encoding

For example:

<liquibase:xml  ouputfile="/path/to/output/changelog.xml"  encoding="UTF-8"/>

Other attributes

Attribute Description Required
classpath The classpath used to run the task. Optional
database See database data type for more information. Required unless a databaserefattribute is given.
referencedatabase See database data type for more information. Required unless a referencedatabaserefattribute is given.
changelogparameters See Substituting Properties in Changelogs for more information. Optional