2016-12-08 16 views
1

私は現在、CassandraをサポートするためのLiquibaseの拡張を作成中です。それはかなりうまくいっていますが、私は素晴らしい機能をいくつか追加したいと思います。Liquibaseの既存の前提条件を無効にする

変更セットに前提条件がある場合、NotSuppportedException()などの何かをスローしたいと思います。現時点では、基礎となるJDBCラッパーがクローズされたResultSetを返し、そのResultSetへのアクセス時にExceptionがスローされるという問題があります。

ステートメントについては、独自のジェネレーターを実装しました。前提条件にも同様のことがありますか?既存のForeignKeyExistsPrecondition実装をオーバーライドする方法ですか?クラスからの拡張とcheckメソッドのオーバーライドは機能しません(パッケージliquibase.precondition.extに配置されていても)。

ありがとうございます!

+0

前提条件のほとんどはSqlStatementsを使用しているようですが、独自のデータベースクラスを実装した場合、これらのステートメントをサポートしていない可能性がありますか? – dag

+0

ForeignKeyPreconditionがSqlStatementを使用していて、悲しいことに上書きできないSnapshotGeneratorFactoryを使用している場合は、これがうまくいきます。 – N4zroth

+0

Okと私は、前提条件に変更があるような優先順位がなく、 PreconditionFactoryは、同じtagNameを持つカスタムクラスを登録するときに使用します。それを試しましたか? preconditionFactoryは既に登録されているタグをチェックするのではなく、すでに登録されているクラスをオーバーライドするだけです。 – dag

答えて

0

これは(@dagのおかげで)うまくいくように見える唯一の方法は、私が上書きしたい前提条件とまったく同じFQDNを使用していることです。

+0

これはうまくいくかもしれませんが、もちろんこれは完璧な解決策ではないことがわかりました。クラスローダーに応じて、これはうまく動作しないかもしれません。私は新しいアイデアを開いている:( – N4zroth

関連する問題