Jiemamyってなんぞ(2) - Webアプリの起動準備(DBの準備)を標準化しよう
昨日に引き続き、地豆トーク。
例えば、とあるWebアプリケーションがSVNリポジトリに置いてあるとします。情報はこのリポジトリURLと、そのルートに置いてあるREADME.txt*1。あなたはこのアプリを無事起動できるでしょうか?
READMEを覗くと、複雑なインストール手順が書かれています。例えば、
- PostgreSQLまたはMySQLをインストールしてください。
- hogeユーザを作り、そのパスワードをhogeにしてください。
- 上記のユーザで PostgreSQLの場合は src/main/database/hoge_postgres.sql, MySQLの場合は…
- src/main/webapp/WEB-INF/hoge.properties の user を hoge に、password を hoge に設定して下さい…
だー。ぼちぼち、やる気が失せて来る頃です。
上記に類似した鬱陶しさを持つのが、ビルドプロセスですね。チェックアウトしたパスのどこにソースがあるかわからなくて、どうやってビルドしたらいいのかわからなくて。それを何とかしようとしたのがMavenですかね。mvn packageってやると、とりあえず target に jar なり war なりを作ってくれる。いいじゃないですか、分かりやすいじゃないですか。私はmaven大好きです、はい。
んじゃさー、これと同じ要領でさー、DBも作っておくれよ。どうせDB用意しないとWebアプリ動かないんやから…。というのが地豆。1つのJiemamyモデル(Jiemamyのデータファイル)から、複数のDBに対応したSQLを吐くことができます。
でもさすがに、DBをインストールするところまでは面倒見切れませんでした。っていうかmvn回したらPostgreSQLがインストールされるとか、さすがに嫌じゃないですかw あと、勝手にユーザ作ったりするのもアレですよね。セキュリティ的にも。
というわけで、DBのインストールとCREATE USER, CREATE DATABASE辺りまでは準備して頂くとして。そこからです。
- 上記の通り(って書いてないけどw)、チェックアウトとDBのインストールが終わったら mvn jiemamy:jiemamy sql:execute を実行してください。*2
- この操作でDBが準備出来ました。あとはアプリを起動しましょう。mvn jetty:run を実行して、http://localhost:8080/hoge/ にアクセスしてください。
となると、アプリ起動の敷居が結構下がったんじゃないでしょうか。初めて使うWebアプリでも、ちょっと試してみよう、という気になるってもんです。