S2JDBC-GENでmigrateするとき各環境用のデータをロードさせたいんだけど・・。(解決済)

めちゃはまった。ソースまで追いかけちゃった。
S2JDBC-GENで各環境用のデータをダンプしておいてマイグレートしたいと思った。そうすると、スキーマの内容が変わってマイグレートしなおしたとき、ローカルで使ってたテストデータなんかを(だいたい)元に戻せるだろうから。
そして、Antのmigrateタスクは以下のように設定されている。最新のバージョンを元に(version="latest")マイグレートを行い、各環境(env="ut")用のダンプを優先する(applyenvtoversion="true")ようになっている。

	<target name="migrate" depends="init">
		<migrate classpathdir="${classpathdir}"
			rootpackagename="${rootpackagename}"
			entitypackagename="${entitypackagename}"
			applyenvtoversion="true"
			version="latest"
			env="ut"
			jdbcmanagername="${jdbcmanagername}"
			classpathref="maven.runtime.classpath" />
	</target>

で、以下のようなディレクトリ構成でmigrateをおこなったとき、0001#utというディレクトリ以下のファイルが優先されるはずなので、ローカルで使ってたusersテーブルのデータが元に戻るはず。(ちなみにダンプはdump-dataタスクで実行して作成)

db
 +---0000
 +---0001
 |    `---create
 |           +---010-table
 |           |         +-----users.sql
 |           `---040-dump
 |                     +-----users.csv
 +---0001#ut ・・・これが各環境独自のSQLとかダンプ(CSV)とかになり、こっちが優先される。
      `---create
             `---040-dump
                       +-----users.csv

(※ id:taediumさんよりご指摘いただき、図を修正しました。)
しかし、上の構成では0001#ut以下のダンプがロードされなかった(テーブルはCREATEされてたけど)。かといって、0001ディレクトリ以下のダンプがロードされるわけでもなかった。色々試してみると以下のような構成にしないといけないらしい。

db
 +---0000
 +---0001
 |    `---create
 |           +---010-table
 |           |         +-----users.sql
 |           `---040-dump
 |                     +-----users.csv
 +---0001#ut
      `---create
             +---010-table
             |         +-----users.sql・・・これ!
             `---040-dump
                       +-----users.csv

どうやら、0001#ut以下のダンプをロードさせたいときは、対象テーブルのCREATEスクリプトも0001#ut以下においておかないとダメっぽい。なんでかなー。最初のディレクトリ構成でもテーブルは出来てるから、ロードしてくれてもよさそうなのに。ま、ひとまずこれで行くことにする。

追記

上記と同じような状況でmigrateを行ったときのログ

Buildfile: /home/hironemu/apps/eclipse/workspace/sample/s2jdbc-gen-build.xml
migrate:
  [migrate] 2009-06-27 17:46:42,578 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンド(org.seasar.extension.jdbc.gen.internal.command.MigrateCommand)を実行します。
  [migrate] 2009-06-27 17:46:42,580 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(statementDelimiter)には値(;)が設定されています。
  [migrate] 2009-06-27 17:46:42,580 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(blockDelimiter)には値(null)が設定されています。
  [migrate] 2009-06-27 17:46:42,581 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(haltOnError)には値(true)が設定されています。
  [migrate] 2009-06-27 17:46:42,581 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(schemaInfoFullTableName)には値(SCHEMA_INFO)が設定されています。
  [migrate] 2009-06-27 17:46:42,583 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(schemaInfoColumnName)には値(VERSION)が設定されています。
  [migrate] 2009-06-27 17:46:42,583 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(ddlFileEncoding)には値(UTF-8)が設定されています。
  [migrate] 2009-06-27 17:46:42,583 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(migrateDir)には値(/home/hironemu/apps/eclipse/workspace/sample/db/migrate)が設定されています。
  [migrate] 2009-06-27 17:46:42,585 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(versionNoPattern)には値(0000)が設定されています。
  [migrate] 2009-06-27 17:46:42,585 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(ddlInfoFile)には値(/home/hironemu/apps/eclipse/workspace/sample/db/ddl-info.txt)が設定されています。
  [migrate] 2009-06-27 17:46:42,585 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(version)には値(latest)が設定されています。
  [migrate] 2009-06-27 17:46:42,586 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(classpathDir)には値(/home/hironemu/apps/eclipse/workspace/sample/target/classes)が設定されています。
  [migrate] 2009-06-27 17:46:42,586 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(rootPackageName)には値(jp.co.example)が設定されています。
  [migrate] 2009-06-27 17:46:42,586 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(entityPackageName)には値(entity)が設定されています。
  [migrate] 2009-06-27 17:46:42,586 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(entityClassNamePattern)には値(.*)が設定されています。
  [migrate] 2009-06-27 17:46:42,587 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(ignoreEntityClassNamePattern)には値()が設定されています。
  [migrate] 2009-06-27 17:46:42,587 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(dumpFileEncoding)には値(UTF-8)が設定されています。
  [migrate] 2009-06-27 17:46:42,589 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(loadBatchSize)には値(10)が設定されています。
  [migrate] 2009-06-27 17:46:42,590 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(transactional)には値(false)が設定されています。
  [migrate] 2009-06-27 17:46:42,590 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(genDialectClassName)には値(null)が設定されています。
  [migrate] 2009-06-27 17:46:42,590 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(applyEnvToVersion)には値(true)が設定されています。
  [migrate] 2009-06-27 17:46:42,590 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(configPath)には値(s2jdbc.dicon)が設定されています。
  [migrate] 2009-06-27 17:46:42,591 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(env)には値(ut)が設定されています。
  [migrate] 2009-06-27 17:46:42,591 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(jdbcManagerName)には値(jdbcManager)が設定されています。
  [migrate] 2009-06-27 17:46:42,591 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンドのプロパティ(factoryClassName)には値(org.seasar.extension.jdbc.gen.internal.factory.FactoryImpl)が設定されています。
  [migrate] 2009-06-27 17:46:42,617 [main] DEBUG org.seasar.framework.env.Env - 環境変数#Envにファイル(env.txt)から値(ct)が設定されました
  [migrate] 2009-06-27 17:46:42,865 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成します。path=warmdeploy.dicon
  [migrate] 2009-06-27 17:46:42,875 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成します。path=convention.dicon
  [migrate] 2009-06-27 17:46:43,029 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成しました。path=convention.dicon
  [migrate] 2009-06-27 17:46:43,031 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成します。path=customizer.dicon
  [migrate] 2009-06-27 17:46:43,037 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成します。path=default-customizer.dicon
  [migrate] 2009-06-27 17:46:43,050 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成します。path=std-customizer.dicon
  [migrate] 2009-06-27 17:46:43,192 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成しました。path=std-customizer.dicon
  [migrate] 2009-06-27 17:46:43,203 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成しました。path=default-customizer.dicon
  [migrate] 2009-06-27 17:46:43,205 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成しました。path=customizer.dicon
  [migrate] 2009-06-27 17:46:43,211 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成します。path=creator.dicon
  [migrate] 2009-06-27 17:46:43,277 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成しました。path=creator.dicon
  [migrate] 2009-06-27 17:46:43,319 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成しました。path=warmdeploy.dicon
  [migrate] 2009-06-27 17:46:43,376 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成します。path=s2jdbc.dicon
  [migrate] 2009-06-27 17:46:43,408 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成します。path=jdbc.dicon
  [migrate] 2009-06-27 17:46:43,437 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成します。path=jta.dicon
  [migrate] 2009-06-27 17:46:43,476 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成しました。path=jta.dicon
  [migrate] 2009-06-27 17:46:43,570 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成しました。path=jdbc.dicon
  [migrate] 2009-06-27 17:46:43,576 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成します。path=s2jdbc-internal.dicon
  [migrate] 2009-06-27 17:46:43,588 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成します。path=convention.dicon
  [migrate] 2009-06-27 17:46:43,596 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成しました。path=convention.dicon
  [migrate] 2009-06-27 17:46:43,607 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成しました。path=s2jdbc-internal.dicon
  [migrate] 2009-06-27 17:46:43,697 [main] DEBUG org.seasar.framework.container.factory.S2ContainerFactory - S2Containerを作成しました。path=s2jdbc.dicon
  [migrate] 2009-06-27 17:46:43,930 [main] INFO  org.seasar.framework.container.factory.SingletonS2ContainerFactory - Running on [ENV]ut, [DEPLOY MODE]Warm Deploy
  [migrate] 2009-06-27 17:46:44,129 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionPoolImpl - 物理的なコネクションを取得しました
  [migrate] 2009-06-27 17:46:44,130 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionPoolImpl - 論理的なコネクションを取得しました。tx=null
  [migrate] 2009-06-27 17:46:44,151 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionWrapperImpl - 論理的なコネクションを閉じました。tx=null
  [migrate] 2009-06-27 17:46:44,153 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - RDBMS(PostgreSQL)に対しS2JDBC-Gen用のデータベースの方言(org.seasar.extension.jdbc.gen.internal.dialect.PostgreGenDialect)を使用します。
  [migrate] 2009-06-27 17:46:44,216 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionPoolImpl - 論理的なコネクションを取得しました。tx=null
  [migrate] 2009-06-27 17:46:44,217 [main] DEBUG org.seasar.extension.jdbc.gen.internal.version.SchemaInfoTableImpl - select VERSION from SCHEMA_INFO
  [migrate] 2009-06-27 17:46:44,290 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionWrapperImpl - 論理的なコネクションを閉じました。tx=null
  [migrate] 2009-06-27 17:46:44,291 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionPoolImpl - 論理的なコネクションを取得しました。tx=null
  [migrate] 2009-06-27 17:46:44,291 [main] DEBUG org.seasar.extension.jdbc.gen.internal.version.SchemaInfoTableImpl - select VERSION from SCHEMA_INFO
  [migrate] 2009-06-27 17:46:44,293 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionWrapperImpl - 論理的なコネクションを閉じました。tx=null
  [migrate] 2009-06-27 17:46:44,301 [main] INFO  org.seasar.extension.jdbc.gen.internal.version.MigraterImpl - バージョン番号 1 から 1 へのマイグレーションを行います。
  [migrate] 2009-06-27 17:46:44,313 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionPoolImpl - 論理的なコネクションを取得しました。tx=null
  [migrate] 2009-06-27 17:46:44,313 [main] DEBUG org.seasar.extension.jdbc.gen.internal.sql.SqlFileExecutorImpl - SQLファイル(/home/hironemu/apps/eclipse/workspace/sample/db/migrate/0001/drop/040-table/users.sql)を実行します。
  [migrate] 2009-06-27 17:46:44,338 [main] DEBUG org.seasar.extension.jdbc.gen.internal.sql.SqlFileExecutorImpl - drop table USERS
  [migrate] 2009-06-27 17:46:44,353 [main] DEBUG org.seasar.extension.jdbc.gen.internal.sql.SqlFileExecutorImpl - SQLファイル(/home/hironemu/apps/eclipse/workspace/sample/db/migrate/0001/drop/040-table/users.sql)を実行しました。
  [migrate] 2009-06-27 17:46:44,360 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionPoolImpl - 物理的なコネクションを取得しました
  [migrate] 2009-06-27 17:46:44,360 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionPoolImpl - 論理的なコネクションを取得しました。tx=null
  [migrate] 2009-06-27 17:46:44,360 [main] DEBUG org.seasar.extension.jdbc.gen.internal.version.SchemaInfoTableImpl - select VERSION from SCHEMA_INFO
  [migrate] 2009-06-27 17:46:44,362 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionWrapperImpl - 論理的なコネクションを閉じました。tx=null
  [migrate] 2009-06-27 17:46:44,362 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionPoolImpl - 論理的なコネクションを取得しました。tx=null
  [migrate] 2009-06-27 17:46:44,363 [main] DEBUG org.seasar.extension.jdbc.gen.internal.version.SchemaInfoTableImpl - delete from SCHEMA_INFO
  [migrate] 2009-06-27 17:46:44,364 [main] DEBUG org.seasar.extension.jdbc.gen.internal.version.SchemaInfoTableImpl - insert into SCHEMA_INFO (VERSION) values (1)
  [migrate] 2009-06-27 17:46:44,370 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionWrapperImpl - 論理的なコネクションを閉じました。tx=null
  [migrate] 2009-06-27 17:46:44,371 [main] DEBUG org.seasar.extension.jdbc.gen.internal.data.LoaderImpl - ダンプファイル(/home/hironemu/apps/eclipse/workspace/sample/db/migrate/0001#ut/create/040-dump/users.csv)をテーブル(USERS)にロードします。
  [migrate] 2009-06-27 17:46:44,386 [main] DEBUG org.seasar.extension.jdbc.gen.internal.data.LoaderImpl - テーブル(USERS)が見つかりませんでした。
  [migrate] 2009-06-27 17:46:44,387 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionWrapperImpl - 論理的なコネクションを閉じました。tx=null
  [migrate] 2009-06-27 17:46:44,387 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionPoolImpl - 論理的なコネクションを取得しました。tx=null
  [migrate] 2009-06-27 17:46:44,388 [main] DEBUG org.seasar.extension.jdbc.gen.internal.data.LoaderImpl - ダンプファイル(/home/hironemu/apps/eclipse/workspace/sample/db/migrate/0001#ut/create/040-dump/users.csv)をテーブル(USERS)にロードしました。[3 件]
  [migrate] 2009-06-27 17:46:44,388 [main] DEBUG org.seasar.extension.jdbc.gen.internal.sql.SqlFileExecutorImpl - SQLファイル(/home/hironemu/apps/eclipse/workspace/sample/db/migrate/0001/create/010-table/users.sql)を実行します。
  [migrate] 2009-06-27 17:46:44,389 [main] DEBUG org.seasar.extension.jdbc.gen.internal.sql.SqlFileExecutorImpl - create table USERS (     ID integer not null,     NAME varchar(20) not null,     KANA varchar(30),     EMAIL varchar(255),     UNIT_ID integer,     constraint USERS_PK primary key(ID) )
  [migrate] 2009-06-27 17:46:44,430 [main] DEBUG org.seasar.extension.jdbc.gen.internal.sql.SqlFileExecutorImpl - SQLファイル(/home/hironemu/apps/eclipse/workspace/sample/db/migrate/0001/create/010-table/users.sql)を実行しました。
  [migrate] 2009-06-27 17:46:44,431 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionWrapperImpl - 論理的なコネクションを閉じました。tx=null
  [migrate] 2009-06-27 17:46:44,432 [main] INFO  org.seasar.extension.jdbc.gen.internal.version.MigraterImpl - バージョン番号 1 から 1 へのマイグレーションを行いました。
  [migrate] 2009-06-27 17:46:44,434 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionWrapperImpl - 物理的なコネクションを閉じました
  [migrate] 2009-06-27 17:46:44,435 [main] DEBUG org.seasar.extension.dbcp.impl.ConnectionWrapperImpl - 物理的なコネクションを閉じました
  [migrate] 2009-06-27 17:46:44,439 [main] DEBUG org.seasar.extension.jdbc.gen.internal.command.MigrateCommand - コマンド(org.seasar.extension.jdbc.gen.internal.command.MigrateCommand)を実行しました。
BUILD SUCCESSFUL
Total time: 3 seconds
追記

id:taediumさんにご対応いただき上記問題は解決しました。現在のところ以下のURLにあるJarが対応しているみたいです。このバージョンを使うと上記の問題は発生しなくなったのを確認。
http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2jdbc-gen/2.4.39-SNAPSHOT/s2jdbc-gen-2.4.39-20090628.125916-1.jar