Ich benutze LoadUpdateData (auch versucht LoadData), um eine CSV-Datei von statischen Daten in eine Tabelle zu laden. Obwohl es als runAlways = "true" markiert ist, erhalte ich einen Prüfsummenfehler, wenn ich den csv ändere.Liquibase - loadUpdateData erfüllt CSV-Prüfsumme geändert
Liquibase Maven Plugin 3.5.2
Was ich versucht:
Ich möchte die Daten entsprechend in der Datei können, ändern (hinzufügen/ändern/dlete Zeilen) und haben die DB aktualisiert , also habe ich ein Changeset erstellt, um die Tabelle abzuschneiden und markierte sie runAlways = "true" und ein Changeset zum Ausführen von loadUpdateData welches auch runAlways = "true" ist. Ich möchte nicht auf das Hinzufügen eines Änderungssets zum Löschen aus DatabaseChangeLog zurückgreifen müssen, wenn der Dateiname mit demjenigen mit diesen Änderungsmengen übereinstimmt. Gibt es eine andere Art und Weise ? runAlways scheint für Leute in früheren Versionen wie für andere SO-Posts und Posts auf der Liquibase-Site funktioniert zu haben.
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
<property name="now" value="sysdate" dbms="oracle" />
<!-- Truncate the table and insert all the data from the CSV file -->
<changeSet author="churcp3" id="deleteConfigData" runAlways="true">
<preConditions onFail="MARK_RAN">
<tableExists tableName="CONFIGURATION" />
</preConditions>
<delete tableName="CONFIGURATION">
</delete>
<rollback />
</changeSet>
<changeSet author="churcp3" id="insertConfigData" runAlways="true">
<loadUpdateData encoding="UTF-8"
file="src/main/resources/data/configuration.tsv" quotchar=""
primaryKey="CONFIGURATION_ID"
separator="~" tableName="CONFIGURATION">
<column name="CONFIGURATION_ID" type="NUMERIC" />
<column name="SERVICE_NAME" type="STRING" />
<column name="CATEGORY" type="STRING" />
<column name="CONFIGURATION_KEY" type="STRING" />
<column name="CONFIGURATION_VALUE" type="STRING" />
<column name="CREATE_TS" type="DATETIME" />
<column name="CREATED_BY" type="STRING" />
<column name="UPDATED_TS" type="DATE" defaultValueComputed="${now}" />
<column name="UPDATED_BY" type="STRING" />
</loadUpdateData>
<rollback>
<delete tableName="configuration"></delete>
</rollback>
</changeSet>
</databaseChangeLog>