掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     DBスキーマの同期後、DDL生成でFKやPKが正しく出力されない


フラット表示 前のトピック | 次のトピック
投稿者 トピック
sugimoto
投稿日時: 2007-4-5 11:32
EA Administrator
投稿: 1895

DBスキーマの同期後、DDL生成でFKやPKが正しく出力されない

○ご指摘

ODBC経由でDBスキーマ(postgreSQL)の読み込みを行っています。

過去のバージョンで作成したモデルにDBスキーマを同期させた後、
DDL生成を行うと、外部キーが出力されるものとされないものがあります。
また、プライマリキーが正しく出力されないこともあります。
新規にDBスキーマの読み込みを行った場合は問題ありません。

例)
本来 PRIMARY KEY(abcId) でなければならない箇所で、以下のように生成される。
ALTER TABLE abc ADD CONSTRAINT pk_abc PRIMARY KEY ();

現状のモデルでは、コメントが多くあり、レイアウトの構築も時間を要しました。
これが失われることは避けたいと思っています。

モデルは新しく読み込んだものを使用するとして、既存のダイヤグラムレイアウトや
既存のモデルのコメントや別名などを、新しいモデルにインポートする方法などはありますか?


○回答

現状、同様のご指摘はなく、原因が明確になっていない状況です。

過去のバージョンのデータベース上に現在のバージョンで追加された
情報がないか、DBスキーマ同期が正しく動作していない可能性が考えられます。

なお、現状、コメント、別名、レイアウト全てを別のプロジェクトにインポート
する方法はございません。

対応案として、新規に読み込んだモデルおよび過去のモデルをそれぞれXMI出力し、
過去のモデルのXMIに対して、新規に読み込んだモデルの情報をマージします。
このマージしたXMIファイルを、過去のモデルのプロジェクトファイルに読み込みますと、
レイアウトやコメントなどの情報は保持したまま、最新の情報がモデルに上書きされます。

ただし、モデルのサイズや複雑度によっては、この作業は現実的ではないかもしれません。


→原因は、最新のDBスキーマの外部キーは全て小文字なのに対し、
 以前のモデルの外部キーは大文字が混在しており、整合性が取れ
 なくなっていることであることが分かりました。
 t_attribute テーブル内のカラム名をすべて小文字に変換したところ、
 外部キー、プライマリキーとも、全て正常に出力されるようになった
 との報告をいただいております。

 Enterprise Architect側で大文字小文字の区別についての処理を改善
 することが必要と考えております。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » DBスキーマの同期後、DDL生成でFKやPKが正しく出力されない sugimoto 2007-4-5 11:32