diffDatabasetoChangelog Task

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

diffDatabasetoChangelog task examples

<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

diffDatabasetoChangelog Task

Parameters specified as nested elements

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
<liquibase:xml  ouputfile="/path/to/output/changelog.xml"  encoding="UTF-8"/>

classpath

The classpath used to run the task with. Optional.

database

Required unless a databaseref attribute is given. See database data type.

referencedatabase

Required unless a referencedatabaseref attribute is given. See database data type.

changelogparameters

Optional. See changelog Parameters.