Scala code generator for Play Framework and Slick
SkalholtはScalaでのWebアプリケーションの開発を効率化するソースコード自動生成ツールです。データベーススキーマからPlay FrameworkとSlickに準拠したソースコードを生成に加え、スキーマからは得ることが出来ない情報を付加したソースコードの生成を実現します。
DBスキーマを準備しSkalholtを実行すれば、シンプルなCRUDアプリケーションが作成できます。SkalholtはWebアプリケーションとして動作しますので、自動生成された設計内容をブラウザから編集することが出来ます。これによりScaffoldから一歩進んだアプリケーションを構築することが出来ます。
Webアプリケーションを開発する際のフレームワークとしてスターンダードとなりつつあるPlay FrameworkとSlickを利用する際の開発を効率化すること、また、簡単に開発をスタートできることでScalaやPlayの習得に障壁を感じている方に対して、その習得を促進することを狙いとしています。
SkalholtはPlay FrameworkをベースとしたWebアプリケーションのテンプレートです。
プロジェクトは以下の構成になっています。
▶ Skalholt-Template
├ app
│ 開発するアプリケーションのソースコード(本ツールにより自動生成)
├ conf
│ 設定ファイル
├ skalholt/lib
│ Skalholtのライブラリ群
├ skalholt.h2.db
│ 設計リポジトリのデータファイル(H2 Database)
└ skalholt-ui.bat(skalholt-ui)
Skalholt起動バッチ(シェル)
Skalholtは以下の様な流れで利用します。
(1) 設計リポジトリの作成
(2) 業務データベースからソースコードの生成
(3) 設計リポジトリからソースコードの生成
(4) 設計リポジトリの内容を編集
(5) ソースコードの再生成
構築するWebアプリケーションの構成はPlay Frameworkに準拠し、「Controller」「View」等は設計リポジトリから、「Model」等はDBスキーマから自動生成します。 設計リポジトリは以下の様な構成です。
Skalholtは以下のDBMSで動作確認を行っています。
Skalholtを利用するために特別なツールのインストールは不要です。sbtさえインストールされていれば使用できます。 sbtの利用に必要な環境と環境構築方法は公式サイトの「sbt のインストール」を参照してください。
C:\work>sbt new tishub/skalholt.g8 --name=myapp
C:\work>cd myapp
C:\work\myapp>sbt
[myapp] $compile
[myapp] $ h2-browser
Driver Class : org.h2.Driver
JDBC URL : jdbc:h2:tcp://localhost:9092/./skalholt;
User Name : sa
Password :
設計リポジトリ(スキーマ名:GENERATOR)とサンプルの業務データベース(スキーマ名:SAMPLE)が用意されています。
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:tcp://localhost:9092/./skalholt;SCHEMA=SAMPLE"
db.default.user=sa
db.default.password=""
データベース接続設定の詳細はPlay公式ドキュメント(リンク先はバージョン2.3)を参照してください。
[myapp] $ run
http://localhost:9000/ へアクセス
メニューにはまだ何も表示されません。
C:\work\myapp>skalholt-ui
※Macで実行する場合は、「skalholt-ui」に実行権限を付与して下さい。
myapp $chmod a+x skalholt-ui
http://localhost:9001/ へアクセス
「Generate」画面にソースコード出力先と自動生成の元となるDBスキーマへの接続情報を設定し「Create design repository and generate source code」をクリック
http://localhost:9000/ へアクセス
メニューにアプリケーションへアクセスするためのリンクが生成されています。
「Design repository -> Screens」画面から変更したい画面を選択
「Screen Detail」画面で画面情報を編集し、「Save Changes」をクリック
画面右上の「Re Generate」からソースコードを再生成
SkalholtはApache License version2.0のもとにリリースされています。