2016-04-11 19 views
1

Liquibase bietet einen <validCheckSum>-Tag, um eine neue Prüfsumme anzugeben, falls wir modify an existing changeset möchten.Modify SQL-Änderungssatz

Dieses Tag ist jedoch kein gültiges Attribut für SQL-formatted changesets. Es gibt runOnChange, aber das ist anders.

Gibt es eine Möglichkeit, das zu erreichen?

Grundsätzlich habe ich einen Fehler bei einem Changeset gemacht, und ich kann nicht einmal einen Rollback-Befehl hinzufügen, weil Liquibase die Prüfsummenänderung erkennt und einen Fehler ausgibt, so dass ich feststecke.

EDIT

Der Beton changeset, die ich zu ändern bin versucht:

--liquibase formatted sql 

--changeset myname:0 
ALTER TABLE `customers` 
CHANGE COLUMN `name` `firstName` VARCHAR(45) NULL; 

--changeset myname:1 
ALTER TABLE `customers` 
ADD COLUMN `lastName` VARCHAR(45) NULL AFTER `firstName`; 

Und ich halte es in einer Datei changelog_1.05.sql. Schließlich füge ich diese Datei in meinem changelog.xml:

<include file="changelog_1.05.sql" relativeToChangelogFile="true"/> 

Ich kann nicht <validCheckSum> hinzufügen, da eine SQL-Format-Datei ist, so können keine XML-Tags dort hinzugefügt werden.

Antwort

1

Obwohl es nicht dokumentiert ist, sieht galleryCheckSum in der Quelle so aus, als wäre es ein gültiges Attribut in einem formatierten SQL Changelog. Sie können sehen, line 89 in FormattedSqlChangelogParser.java hat Code, um nach diesem Attribut zu suchen.

+0

Wow, nett. Leider wurde es vor weniger als einem Monat hinzugefügt und wurde noch nicht veröffentlicht. – garci560

+0

Ich denke, dass Liquibase Version 3.5.0 bis Ende April 2016 veröffentlicht werden soll. – SteveDonie

+0

Gut zu hören. Danke noch einmal – garci560