[Seasar-user:8635] Re: ReplaceSchema-Taskの使い方

kubo [E-MAIL ADDRESS DELETED]
2007年 6月 25日 (月) 12:54:13 JST


久保です。

> DB-FluteのReplaceSchema-Taskについて質問です。
> やりたいことは、Schemaは変更せずに、データ挿入(1テーブルがExcelの1シートといったイメージ)
> だけをすることです。
> 
> 1)「指定されたSqlFile(DropTableとCreateTableのDDL文)を実行してDBのSchemaを作り直す。」
> に関して。
> 
> A)「指定されたSqlFile」というのは、どこで指定するのですか?
> 
> B)このSqlFileはDB-Fluteが生成するのですか?それとも、外から与えるのですか?
> 
> 2)「また、Replace後に指定されたExcelやTSVなどのDataをInsertする。」に関して。 
> 
> 
> A)どのような形式のファイルをどのような名前でどこに置けばよいのでしょうか?
> 
> B)テーブルごとにExcelの1シートをイメージしているのですが、テーブル間の依存性を 
> 
> 考慮して、挿入順が決まるのでしょうか?
> 
> 3)SQL Serverのidentityカラムには対応していますでしょうか?
> 
> マニュアルがあるのであれば、場所を教えてもらうのでもかまいません。

すいません、完全にドキュメントレスでして...
今この場で取り急ぎお答えします。



> 1)「指定されたSqlFile(DropTableとCreateTableのDDL文)を実行してDBのSchemaを作り直す。」
> に関して。

> A)「指定されたSqlFile」というのは、どこで指定するのですか?

build-xxx.propertiesが存在するDirectoryから見て、
「./playsql/replace-schema.sql」
です。
なければ手動で作成お願いします。

> B)このSqlFileはDB-Fluteが生成するのですか?それとも、外から与えるのですか?

「外から」です。
例えば、ERWinやEAなどで生成したDDL文を
そのまま「./playsql/replace-schema.sql」に出力します。
(その時、DROP TABLE文は要りません)

手動で作成したDDLも一括で実行したい場合は(ストアドやVIEWなど)、
以下のようにします。
「replace-schema-00-autogen.sql」
「replace-schema-10-xxx.sql」
「replace-schema-20-xxx.sql」
「...」
というようなファイル構成にすると、
アルファベット順でファイル(DDL)が実行されます。


> 2)「また、Replace後に指定されたExcelやTSVなどのDataをInsertする。」に関して。 
> 

> A)どのような形式のファイルをどのような名前でどこに置けばよいのでしょうか?

Excel               -- 「./playsql/data/ut/xls/xxx.xls」
TSV (UTF-8)         -- 「./playsql/data/ut/tsv/UTF-8/10-[テーブル名].tsv」
TSV (Windows-31J)   -- 「./playsql/data/ut/tsv/Windows-31J/10-[テーブル名].tsv」

「ut」の部分ですが、リリース用の共通マスタ系「common」や
結合テスト用の「it」など、モードで切り替えが可能ですが、
特に開発用のテストデータのみでの利用であれば気にする必要はありません。
(デフォルトはut)

> B)テーブルごとにExcelの1シートをイメージしているのですが、テーブル間の依存性を 
> 
> 考慮して、挿入順が決まるのでしょうか?

テーブル間の依存性の考慮は作成側で順番を見極めて行います。
こちらは、S2Unitと全く同じです。
シートの左から順番に登録されます。
また、Excelファイルが複数ある場合は、アルファベット順で登録処理が走りま
す。

> 3)SQL Serverのidentityカラムには対応していますでしょうか?

対応しています。



replace-schemaが設置されているSampleが以下にあります。
こちら参考にしていただければと思います。
https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute-example
(Checkoutしていきなりreplace-schema実行できます)


分からない場合はまた聞いてください。





Seasar-user メーリングリストの案内