Liquibase uses the DATABASECHANGELOG table to track which changeSets have been ran.

The table tracks each changeSet as a row, identified by a combination of the “id”, “author” and a “filename” column which stores the path to the changelog file.

ColumnStandard Data TypeDescription
IDVARCHAR(255)Value from the changeSet "id" attribute
AUTHORVARCHAR(255)Value from the changeSet "author" attribute
FILENAMEVARCHAR(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
DATEEXECUTEDDATETIMEDate/time of when the changeSet was executed. Used with ORDEREXECUTED to determine rollback order
ORDEREXECUTEDINTOrder 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.
EXECTYPEVARCHAR(10)Description of how the changeSet was executed. Possible values include "EXECUTED", "FAILED", "SKIPPED", "RERAN", and "MARK_RAN",
MD5SUMVARCHAR(35)Checksum of the changeSet when it was executed. Used on each run to ensure there have been no unexpected changes to changSet in the changelog file
DESCRIPTIONVARCHAR(255)Short auto-generated human readable description of changeSet
COMMENTSVARCHAR(255)Value from the changeSet "comment" attribute
TAGVARCHAR(255)Tracks which changeSets correspond to tag operations.
LIQUIBASEVARCHAR(20)Version of Liquibase used to execute the changeSet


There is no primary key on the table. This is to avoid any database-specific restrictions on key lengths.

Missing, incomplete or wrong information? Please send a pull request