Liquibase uses the DATABASECHANGELOG table to track which changesets have been run. If the table does not exist in the database, Liquibase creates one automatically.


The table tracks each changeset as a row, identified by a combination of the id, author, and filename columns. There is no primary key on the table. This is to avoid any database-specific restrictions on key lengths. The composite of id, author, and filename is unique across all rows of the table.

Column Standard data type Description
ID VARCHAR(255) Value from the changeset id attribute.
AUTHOR VARCHAR(255) Value from the changeset author attribute.
FILENAME VARCHAR(255) Path to the changelog. This may be an absolute path or a relative path depending on how the changelog was passed to Liquibase. For best results, it should be a relative path. The logicalFilePath attribute can be used on the changelog or on individual changesets.
DATEEXECUTED DATETIME Date/time of when the changeset was executed. Used with ORDEREXECUTED to determine rollback order.
ORDEREXECUTED INT Order that the changesets were executed. Used in addition to DATEEXECUTED to ensure order is correct even when the databases datetime supports poor resolution.

NOTE: The values are only guaranteed to be increasing within an individual update run. There are times where they will restart at zero.
EXECTYPE VARCHAR(10) Description of how the changeset was executed. Possible values include EXECUTED, FAILED, SKIPPED, RERAN, and MARK_RAN.
MD5SUM VARCHAR(35) Checksum of the changeset when it was executed. Used on each run to ensure there have been no unexpected changes to changesets in the changelog file. See Changeset Checksums.
DESCRIPTION VARCHAR(255) Short auto-generated human readable description of changeset
COMMENTS VARCHAR(255) Value from the changeset comment attribute.
TAG VARCHAR(255) Tracks which changeset correspond to tag operations.
LIQUIBASE VARCHAR(20) Version of Liquibase used to execute the changeset.
CONTEXTS VARCHAR(255) Context(s) used to execute the changeset.
LABELS VARCHAR(255) Label(s) used to execute the changeset.
DEPLOYMENT_ID VARCHAR(10) changesets deployed together will have the same unique identifier.

Related links