こんにちは。
そろばん3級、IM10級、現在、NTTデータビズインテグラルにて修行中の斎藤です。
IMのスキルが低いので、IMではなくオープンソースの便利ツールを紹介します。
「DBFlute」というオープンソースのO/Rマッパです。以下のサイトが本家です。
http://dbflute.sandbox.seasar.org/
O/Rマッパという括りだとHibernateやらS2JDBCみたいなの想像しますが、これはどちらかというとDBのインフラ、環境構築周りを支援するツールです。
だいたい以下のようなことできます。
- 1. DBのスキーマからメタ情報(テーブル名やカラムの型、名前など)を取得するAPIの提供
- 2. スキーマからEntityを自動生成
- 3. SQLからEntityを自動生成
- 4. スキーマ情報からドキュメントを自動生成
- 5. ExcelやCSVからスキーマデータを構築
全部は語り尽くせないので4と5の機能について紹介します。
まず、4.スキーマ情報からドキュメントの自動生成ですが、DB上のスキーマ情報からHTMLを生成でき、EXCELなんかにそのまま貼付けできます。
(サンプル:http://dbflute.sandbox.seasar.org/ja/data/doc/basic/schema-exampledb.html)
お客様から「<テーブル定義書がないアプリ>のテーブル定義書をだせ!!」
なんてせっつかれた場合に、タスクを実行してコピペするだけで対応できます。
あとは死にそうな顔をしながら「頑張りました(ゲソ」といって提出すればOKです。
DB内のデータ(テーブル定義情報ではなく、中身のデータ)をExcelに出力することもできます。
また5.ExcelやCSVからスキーマを構築できます。テーブル定義だけじゃなく、中身のデータも自動投入します。
少し手間がいりますが追加タスクでSEQUENCEのインクリメントしたり、ストアド投入したりとかもできます。実に便利。
Biz∫ではこの機能を使ってアプリケーションの初期データを作成しています。
インポートするデータを外出しのEXCELやCSVでもっておいてそこからデータを投入しできるため、メンテナンスが非常に楽です。
投入するデータもフェーズ別に扱うことができ、例えばデモ用と結合試験用のデータを分けてEXCELに置いておき、それぞれフェーズにわけてデータ投入するといったようなことができます。
今までダンプ/インポートでスキーマのメンテしてるようなシステムではこっちのほうが便利だと思います。
そんなに難しくないツールなのでぜひ使ってみて下さい。