Jiemamyってなんぞ(2) - Webアプリの起動準備(DBの準備)を標準化しよう

昨日に引き続き、地豆トーク

例えば、とあるWebアプリケーションがSVNリポジトリに置いてあるとします。情報はこのリポジトリURLと、そのルートに置いてあるREADME.txt*1。あなたはこのアプリを無事起動できるでしょうか?

READMEを覗くと、複雑なインストール手順が書かれています。例えば、

  1. PostgreSQLまたはMySQLをインストールしてください。
  2. hogeユーザを作り、そのパスワードをhogeにしてください。
  3. 上記のユーザで PostgreSQLの場合は src/main/database/hoge_postgres.sql, MySQLの場合は…
  4. 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辺りまでは準備して頂くとして。そこからです。

  1. 上記の通り(って書いてないけどw)、チェックアウトとDBのインストールが終わったら mvn jiemamy:jiemamy sql:execute を実行してください。*2
  2. この操作でDBが準備出来ました。あとはアプリを起動しましょう。mvn jetty:run を実行して、http://localhost:8080/hoge/ にアクセスしてください。

となると、アプリ起動の敷居が結構下がったんじゃないでしょうか。初めて使うWebアプリでも、ちょっと試してみよう、という気になるってもんです。

*1:READMEが置いてあるだけ、まだ親切…。 場合によってはコレもありません。

*2:書いてて思った。近いうちに mvn jiemamy:execute トカにしよう。一発でやりたいよね。