Following a quickstart on liquibase i have produced a changeset (very dumb :) )
<?xml version="1.0" encoding="UTF-8"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.6 http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.6.xsd"> <changeSet id="1" author="me"> <createTable tableName="first_table"> <column name="id" type="int"> <constraints primaryKey="true" nullable="false"/> </column> <column name="name" type="varchar(50)"> <constraints nullable="false"/> </column> </createTable> <createTable tableName="new_table"> <column name="id" type="int"> <constraints primaryKey="true" nullable="false"/> </column> </createTable> </changeSet> </databaseChangeLog>
I have produced a clean schema and i have released the migrate command.
Liquibase produced the database, using the support tables databasechangelog and ..lock.
Just how i'm able to track the alterations?? i have modified the changeset adding a brand new createTable element however when i attempt the command "update" liquibase informs me this
Migration Failed: Validation Failed: 1 change sets check sum
and so i don't believe to possess understood the best way to use liquibase.
Someone may point me right direction??
You shouldn't modify
<changeSet> which was already performed. Liquibase computes checksums for those performed changeSets and stores them within the log. It'll then recalculate that checksum, compare it to saved and fail the next time you take it when the checksums differ.
What you ought to do rather is add another
<changeSet> and set your brand-new createTable aspect in it.
This presently recognized response is slightly outdated according to alterations in Liquibase 2.x. Within the 2.x version, Liquibase will still fail when the md5 checksum has transformed for any changeset, however, you can specify the runOnChange attribute if you wish to have the ability modify it.
In the documentation:
runOnChange - Executes the modification the very first time it's seen and every time the modification set continues to be transformed