2016.11.25

ALTER文の自動生成機能

 拙作のモデリングツールX-TEA Modelerで、テーブル定義の差分からDDLを生成できるようになった。もともと個々のテーブル定義にもとづいてCREATE文が示されるようになっていたのだが、今回のアップデートで、定義ファイルの差分にもとづくALTER文やDROP文を得られるようになった。これでテーブルモジュールの維持が楽になる。

 使い方は簡単。X-TEA Modelerでは、システム定義ファイル(.xead)を更新する際に、適宜に専用フォルダにバックアップできるようになっている。最新版との違いを確認するための「差異レポート」の機能を呼び出し、いずれかの過去定義ファイルを指定する。パネルが表示されたらその上の「差分DDLを出力する」をチェックする(次図)。それだけで、DDLが新規のテキストファイルに出力される。

▼「差異レポート」での差分DDL出力指定
20161125

 便利な機能だが、限界はある。ある種のテーブル制約については、制約名指定で定義が操作されるのだが、それを削除する際には現在のテーブルモジュール内での制約名をあらかじめ調べて、生成されたALTER文の一部を修正しなければならない。また、Null可能であるような項目をNot Nullにモディファイする際には、Null値が設定されているカラムが存在すれば、ALTER文を実行するとエラーになる。また、ALTER文にさえRDBMS毎の「方言」があるので、場合によってはステートメントを修正する必要もある。

 けっきょくのところ、ALTERやDROPを実行するためには、辛気臭い準備がいろいろと必要になるわけで、自動生成されたステートメント群を一挙に実行して終わり、とは期待しないほうがいい。テーブルモジュールを慎重に修正するための基礎情報くらいにみなしてほしい。まあ、完全なものとはいえないにせよ、テーブル毎にCREATE文が示されるだけよりはよほど便利になった。活用してほしい。

| | コメント (0) | トラックバック (0)

«開発手法と「クリティカル・スキル」