サポート > リポジトリ > Designerの機能・その他のツール > 既存テーブル定義からリポジトリを生成する

既存システムのテーブル定義から Wagby のリポジトリ(設計情報)を半自動生成する方法を説明します。

既存システムのリレーショナルデータベースからテーブル定義情報を読み込み、Wagby のリポジトリを半自動生成することができます。 読み込むことができるのは、次の情報です。

  • テーブル名
  • 項目名
  • 項目の型
  • 外部キー

Wagby が対応している、すべてのデータベースを利用できます。さらに Microsoft Access の MDB ファイルにも対応しています。

本ツールは製品に標準で同梱されていません。ここからダウンロードしてください。

インストール方法

Wagbyをインストールしたフォルダ (Wagby-7.x.x) の misc フォルダに解凍します。次のファイルが (miscフォルダに) 展開されます。

  • RepositoryConverterCUI.jar
  • conf\config.properties
  • lib\hsqldb.jar
  • lib\jackcess-2.1.2.jar
  • lib\ucanaccess-3.0.2.jar

これでインストール作業は完了です。

JDBCドライバファイルの配置

Wagby-7.x.x\customize\tomcat\lib に、移行対象となるDB向けのJDBCドライバファイルを1つだけ置きます。

注意:置くファイルは1つだけです。

config.propertiesの編集

conf\config.properties を編集します。例を示します。

driver=org.postgresql.Driver
url=jdbc:postgresql://localhost/wagbydb
user=postgres
password=postgres

上記パラメータにそれぞれ、適切な値を指定します。

Microsoft Access のファイルからリポジトリを生成する場合は、次の手順で行ってください。

JDBCドライバファイルの配置

不要です。

config.propertiesの編集

conf\config.properties を編集します。例を示します。

driver=
url=jdbc:ucanaccess://C:/Users/YOURNAME/Desktop/testdb/testdb_j.mdb
user=
password=

driver,user,passwordは空白とします。urlは jdbc:ucanaccess: の後に、ファイルの場所を直接、指定します。

実行

ファイルエクスプローラから RepositoryConverterCUI.jar をダブルクリックで実行します。 黙って終了しますが、logsフォルダにログが出力されています。

または、コンソールから実行させてください。以下の手順となります。

  1. DOSプロンプトを開きます。
  2. Wagby-7.x.x\misc フォルダに移動します。
  3. 次のコマンドを実行します。
    java -jar RepositoryConverterCUI.jar
  4. コンソールおよびlogsフォルダにメッセージが出力され、終了します。

確認

Designerを起動します。(起動中の場合、リポジトリを再読み込みします。)

  • 型は「文字」「数字」「日付」「モデル参照(検索)」を判別します。モデル参照は、外部キー指定 (foreignkey) の場合に有効です。
  • DBのカラムサイズを判断材料に使います。10文字以下なら入力欄に tips を出します。文字列型で255文字以上なら、テキストエリアとして扱います。
  • 浮動小数点型の場合、桁数情報があればそれを使い、入力フォーマットに反映させます。
  • NOT NULL 制約を判定します。
  • 日付型は登録画面を開いたときの初期値に関数 TODAY を、日付時間型は関数 NOW を指定します。
  • モデルID(英語)と項目ID(英語)が日本語の場合、それぞれ「modelXX」「itemXX」を自動で設定します。
  • モデルID(英語)と項目ID(英語)がWagbyの名前付ルールに合致しないとき、それぞれ「modelXX」「itemXX」を自動で設定します。
  • 外部キーはすべて「モデル参照(検索)」となってしまいますが、実際には繰り返しコンテナまたは外部キー(親子モデル関係)として扱うことが適切なケースがあります。自動判定できないため、開発者がこれらの構造を適切に見直してください。
  • 複合キーの場合の「モデル参照(検索)」も同様です。
  • モデルIDや項目IDに日本語が設定される場合があります。これらは手動で修正し、英数字に置き換えてください。
  • 入力チェックや出力フォーマットなどは適切に修正してください。

移行元テーブルのNOT NULL指定を、(Wagbyに)反映させない7.8

移行対象テーブルが NOT NULL DEFAULT となっていた場合、取り込み後の定義はすべて必須項目になります。

これを避けるため、config.properties に次のように記述できます。

ignoreNotnull=モデルID,モデルID,..

モデルID部はコンマ区切りで複数、記載できます。また正規表現式も解釈します。ここに記載したモデルIDは、NOT NULL 指定をスキップします。

これによって Wagby では必須項目と扱われませんが、実テーブルは NOT NULL であるため、空欄の項目で入力しても空白に置換させる処理を加える必要があります。

本ツール (RepositoryConverter) を使うと、プロジェクトは常に新規として扱われます。 開発中のプロジェクトに適用する場合、次のようにします。

  1. 開発中のプロジェクト(のリポジトリ)をバックアップします。
  2. RepositoryConverter で既存DBからモデル定義を起こします。このタイミングで新規プロジェクトとなります。
  3. 用意されたモデル定義は、repository/trunk 以下に「モデルID名 = フォルダ名」として生成されています。そこで、必要なフォルダを(あらかじめ用意した)work フォルダにコピーします。
  4. 最初の手順でバックアップしていたリポジトリを読み込みます(リストア)。
  5. work に退避させていたフォルダ群を、repository/trunk にコピーします。注意:すでに同名のフォルダが存在しないことを確認してください。同名のフォルダはコピーできません。3.のタイミングでモデルIDを変更するようにしてください。
  6. リポジトリ再読み込みを行います。

既存DBに対応したモデルについては、サブデータベースとして設定するとよいでしょう。

Microsoft Access のファイルを読み込むため、オープンソースの UCanAccess を利用しています。