Works

[Tools]「ERMaster」からデータベース操作のソースコードを出力するツールを公開

公開先GitHub

ツール概要

サーバーサイドではデータベース操作は必須となっております。
プログラムでデータベースを扱う上で、「Laravel」の「Eloquient」等のような、ORMファイルを作成して使用する事で、楽にデータベースの操作が行えるようになります。
ORMファイルはテーブルごとに作成する事が、多いですが手動でテーブルごとのファイルを作成すると時間がかかります。
そこでデータベースの設計ツールである「ERMaster」から書き出したエクセルファイルを、ORMファイルに書き出すツールとして作成しました。
これにより設計から開発する場合に、工数をかけず正確に実装する事が可能となります。
また「Laravel」のデータベースを構築するMigrationファイルも一緒に作成します。

開発環境

本ツールは以下のプログラムで作成しております。

  • Python 3.9

またエクセルを読み込むために以下のライブラリをインストールしてください。

$ pip install openpyxl
$ pip install pyexcel
$ pip install pyexcel-xls
$ pip install pyexcel-xlsx
$ pip install pyexcel-xlsxw

使い方

まずは上記のGitHubからソースコードをCloneします。
次に「ERMaster」を使用してデータベースの設計を行います。
「ERMaster」の使用方法は別の記事で記載するので、そちらをご参照ください。

上記は簡単なユーザーとログイン関係のテーブルです

テーブルの設計が終わりましたら、「エクスポート」でエクセルに出力します。

エクセルで出力する

エクセルを出力して、先ほどCloneしたプログラムを実行します。
実行方法としてWindowsであれば「PowerShell」、Macであれば「ターミナル」を使用します。
下記のコマンドは「Laravel」の「MySQL」での使用例となります。

$ python ./er_master_to_migration/er_master_to_migration.py -i [出力したエクセルファイル名] -sql mysql -project laravel -date "20230124"

実行を完了すると「Entities」と「ExtEntites」をフォルダにファイルが書き出されます。

OMRファイルを配置

以下のようにして使用することでデータを取得することができます。

usersテーブルから指定のIdを取得する例

「Laravel」の場合では、ライブラリとして「barryvdh/laravel-ide-helper」と「doctrine/dbal」を組み合わせて使用することで、テーブル内のカラムのドキュメンテーションを作成して、「PhpStorm」などで使用した場合に、コードの補完を行ってくれるようになります。

このツールを使用して開発の手助けになればと思います。