2016-10-26 10 views
0

ヘッダーにはすべて説明されていると思います。コマンドラインを使用せずにSchemaCrawlerを使用してデータベーススキーマのオフラインスナップショットを作成してロードするには良い方法がありますか?はいの場合、いくつかのコード例/リンクを教えてください。もしそうでなければ、コマンドラインオプションを使うためのいくつかのJavaコード例も役に立つでしょう(私はあまり経験がありません)!JavaコードでSchemaCrawlerのオフラインスナップショットを使用する方法

ありがとうございました!

PS:私はこのコードを使用してオフラインでスナップショットを作成するために管理:

final SchemaCrawlerOptions options = new SchemaCrawlerOptions(); 
    // Set what details are required in the schema - this affects the 
    // time taken to crawl the schema 
    options.setSchemaInfoLevel(SchemaInfoLevelBuilder.standard()); 
    options.setRoutineInclusionRule(new ExcludeAll()); 
    options.setSchemaInclusionRule(new RegularExpressionInclusionRule(/* some regex here*/)); 
    options.setTableInclusionRule(new RegularExpressionExclusionRule(/*some regex here*/)); 

    outputOptions.setCompressedOutputFile(Paths.get("./test_db_snapshot.xml")); 
    final String command = "serialize"; 

    final Executable executable = new SchemaCrawlerExecutable(command); 
    executable.setSchemaCrawlerOptions(options); 
    executable.setOutputOptions(outputOptions); 
    executable.execute(getConnection()); 

しかし、それに接続する方法がわかりません。

答えて

0

schemacrawler.tools.offline.OfflineSnapshotExecutableschemacrawler.tools.offline.jdbc.OfflineConnectionを使用して、データベーススナップショットに「接続」する必要があります。

次のコードを見てみてください:、 OfflineSnapshotTest.offlineSnapshotExecutable()

そして@ZidaneTをオフラインスナップショットをロードするために、LoadSnapshotTest.java

Sualeh Fatehi、SchemaCrawler

+0

でそのようなコードを使用し、あなたをありがとう回答!実際に私はこのテストに遭遇しました。これは私の試みの1つでしたが(すぐに書き込めるかもしれませんでしたが)、OfflineSnapshotExecutableコンストラクタが実際に保護されていることがわかりました。 。何らかの理由でこの可視性が望まれているのですか、まさにバグですか? – ZidaneT

+0

これをプログラムでこのように使用しようとするのは、最初の人である可能性があります。私は公開し、SchemaCrawlerの新しいバージョンをリリースします。それを追跡するにはGitHubの問題に入力してください。ありがとう。 –

+0

@ZidaneT - 'OfflineSnapshotExecutable'のpublicコンストラクタを持つSchemaCrawler 14.10.06を使用してください –

関連する問題