2017-08-10 5 views
0

タイトルには、Liquibaseを使用して空のデータベースの変更ログをオフラインモードで生成したいと考えています。私のアリファイルは、次のようになります。オフラインモードでLiquibaseを使用して空データベースの変更ログを生成

<project xmlns:liquibase="antlib:liquibase.integration.ant"> 

<taskdef resource="liquibase/integration/ant/antlib.xml" uri="antlib:liquibase.integration.ant"> 
    <classpath> 
     <pathelement location="antlibs/liquibase-core-3.5.3.jar" /> 
     <pathelement location="antlibs/snakeyaml-1.18.jar" /> 
    </classpath> 
</taskdef> 

<target name="generate-changelog"> 
    <liquibase:generateChangeLog> 
     <liquibase:database url="offline:postgresql?snapshot=snapshot.json" /> 
     <liquibase:xml outputfile="target/changelog.xml" encoding="UTF-8" /> 
    </liquibase:generateChangeLog> 
</target> 

後、私は私のエンティティからの変更履歴を生成するために、LiquiBaseを-Hibernate4を追加したいが、私は事前に様々な問題が発生しました。単に「offline:postgresql」というURLを使用すると、Liquibaseが使用できないスナップショットを複製しようとしたため、AntタスクがNullPointerExceptionでクラッシュします。 "?snapshot = snapshot.json"を追加すると、Liquibase(またはYaml)は自分のファイルを見つけることができません。

私の質問:

  • は、これは私が単にまったくベースのスナップショットなしで私のエンティティの変更履歴を作成する正しいアプローチですか?
  • 空のデータベースをベースとしてliquibaseを提供する簡単な方法はありますか?
  • snapshot.jsonをプロジェクトに追加して、antタスクで見つけられることを確認するにはどうすればよいですか?私はいくつかのものを見つけることができた一方

答えて

0

:snapshot.jsonは、タスクによって見つけることができることを確認するため

  • を、一つはjarファイルにそれを入れて追加する必要がありますjarファイルをタスクのクラスパスに追加します。
  • Hibernate拡張機能は、オフラインURLでは機能しないようですが、Hibernate拡張機能には適切なアプローチではないようです。
  • https://liquibase.jira.com/browse/CORE-2183によれば、初期のJPA変更ログを生成するために空のH2データベースをベースとして使用することが考えられます。
関連する問題