0
私はLiquiBaseを3.5.1(最新)を使用して、以下のチェンジセットを持っている:LiquiBaseを前提MARK_RAN有効でない
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<preConditions onFail="MARK_RAN">
<sqlCheck expectedResult="2">SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo';</sqlCheck>
</preConditions>
<changeSet author="user" id="base">
<sqlFile path="liquibase/base.sql"/>
</changeSet>
</databaseChangeLog>
は右、単に十分なようですか?自動的に生成されたLiquibaseテーブルの2つのテーブルをチェックしてDBが空であるかどうかを確認し、そうであれば基本スクリプトを実行するという考え方です。ただし、失敗した場合は、チェンジセットを実行済みとしてマークし、移動します(フィーチャーhereのドキュメント)。しかし、私は次のエラーを取得する:
Value 'MARK_RAN' is not facet-valid with respect to enumeration '[HALT, WARN]'.
チェックアウト私の答えは[こちら] (http://stackoverflow.com/a/39223493/332248)。簡単な答え:変更ログレベルでは 'MARK_RAN'は利用できません。チェンジセットのみ。 – Jens