About

ドキュメント

Javadoc

モジュール

プロジェクト文書

Built by Maven

説明

概要

ダンプファイルをデータベースにロードします。

ロードできるダンプファイルの形式については、ダンプファイル を参照ください。

このタスクは、外部キー制約の存在を考慮したロードを行いません。 外部キー制約を解除した状態でロードを行いたい場合はMigrate タスクを使用することを検討してください。

パラメータ

Antタスクへのパラメータを以下に示します。

トップレベルのパラメータ

属性 説明 デフォルト値 必須
classpathDir エンティティクラスを含むクラスパスのディレクトリです。このディレクトリはタスクの実行時のクラスパスに含まれている必要があります。 - YES
rootPackageName ルートパッケージ名です。 "" NO
entityPackageName エンティティクラスのパッケージ名です。エンティティクラスは、rootPackageNameとこの値をピリオドで連結したパッケージに配置されているとみなされます。 "entity" NO
entityClassNamePattern このタスクで対象とするエンティティクラス名の正規表現です。 ".*" NO
ignoreEntityClassNamePattern このタスクで対象としないエンティティクラス名の正規表現です。 "" NO
migrateDir マイグレーション用のファイルを管理するディレクトリです。 "db/migrate" NO
ddlInfoFile DDLのバージョン番号を管理するファイルです。 "db/ddl-info.txt" NO
versionNoPattern バージョン番号のパターンです。バージョン番号に対応するディレクトリ名に使用されます。 "0000" NO
dumpDirName ダンプファイルを出力するディレクトリ名です。 "040-dump" NO
dumpDir ダンプファイルが格納されているディレクトリです。指定しない場合、migrateDir、ddlInfoFile、versionNoPattern、dumpDirNameにより出力先ディレクトリが決まります。 - NO
dumpFileEncoding ダンプファイルのエンコーディングです。 "UTF-8" NO
loadBatchSize ダンプファイルのデータをロードする際のバッチサイズです。 "10" NO
delete "true"の場合、ロードの前にデータを削除します。"false"の場合、何もしません。 "false" NO
transactional "true"の場合、単一のトランザクションとして実行します。 "false" NO
genDialectClassName S2JDBC-Genのダイアレクトインタフェースの実装クラス名です。ここに指定するクラスはorg.seasar.extension.jdbc.gen.dialect.GenDialectインタフェースを実装している必要があります。指定しない場合はS2JDBCのダイアレクト に対応したデフォルトのクラスが使用されます。 - NO
configPath JdbcManagerのコンポーネント定義を含む設定ファイルです。このタスクの実行に使用されます。 "s2jdbc.dicon" NO
env 環境名です。 "ut" NO
applyEnvToVersion バージョンディレクトリに環境名を適用する場合"true"を指定しますを指定します。trueを指定すると、通常のバージョンディレクトリよりも環境名つきバージョンディレクトリに存在するダンプファイルを優先してロードします。dumpDirを指定しない場合にのみ有効です。 "false" NO
jdbcManagerName JdbcManagerのコンポーネント名です。接続先のデータベースはJdbcManagerのコンポーネント名によって決まります。 "jdbcManager" NO
factoryClassName S2JDBC-Genの公開されたインタフェースの実装を作成するファクトリのクラス名です。S2JDBC-Genをカスタマイズする場合に独自のファクトリクラスを指定できます。ここに指定するクラスはorg.seasar.extension.jdbc.gen.internal.factory.Factoryインタフェースを実装している必要があります。 "org.seasar.extension.jdbc.gen
.internal.factory.FactoryImpl"
NO
commandInvokerClassName S2JDBC-Genのコマンドを呼び出すクラスの名前です。コマンドの呼び出し前後で任意の処理を実行したい場合に指定します。ここに指定するクラスはorg.seasar.extension.jdbc.gen.command.CommandInvokerインタフェースを実装している必要があります。 "org.seasar.extension.jdbc.gen
.internal.command.CommandInvokerImpl"
NO
classpath このタスクを実行する際のクラスパスです。 - classpathrefが指定されていない場合YES
classpathref このタスクを実行する際のクラスパスの参照です。 - classpathが指定されていない場合YES

ネストした要素として指定されるパラメータ

jvmArg

このタスクの大部分の処理は別VMで行われます。VMに引数を渡す場合は<jvmarg>要素を使用します。 これはAntのJavaタスクで使用できる<jvmarg>と同じです。 使用可能な属性やネストした要素についてはAntのドキュメントを参照してください。

バッチサイズを変更する

バッチサイズを変更してタスクを実行します。

<load-data
    classpathDir="build/classes"
    rootPackageName="examples"
    loadBatchSize="20"
    classpathRef="classpath"
/>

ロード前に既存データを削除する

ロード前に既存データを削除するには、delete属性に"true"を指定します。

<load-data
    classpathDir="build/classes"
    rootPackageName="examples"
    delete="true"
    classpathRef="classpath"
/>

delete属性に"true"を指定すると、全データを削除する「delete from ...」のSQLがロード前に実行されるようになります。

環境名つきバージョンディレクトリ以下のダンプァイルを優先する

applyEnvToVersion属性に"true"を指定すると、環境名つきバージョンディレクトリ以下に同名の相対パスで表されるファイルがあれば、そちらが優先されるようになります。 設定例は次の通りです。

<load-data
    classpathDir="build/classes"
    rootPackageName="examples"
    applyEnvToVersion="true"
    env="ut"
    classpathRef="classpath"
/>

環境名つきバージョンディレクトリとは、バージョン名と環境名を#で連結したディレクトリのことです。 次の図で言えば、0001#utがバージョンディレクトリになります。

db
└─migrate
    ├─0001
    │  └─create
    │      └─040-dump
    │          ├─employee.csv
    │          └─address.csv
    │          └─..
    └─0001#ut
        └─create
            └─040-dump
                └─employee.csv

この例では、employee.csvについては0001#utディレクトリ以下のものが使用され、 0001ディレクトリ以下にあるemployee.csvは参照されません。 address.csvについては0001ディレクトリ以下にあるものが使用されます。

環境名つきバージョンディレクトリ以下のダンプデータは、Dump-Dataタスク により作成できます。