SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Herokuでスタート! はじめてのPaaSアプリケーション開発

コマンド1つでDBをアプリに追加できるのもPaaSの魅力! Heroku Postgresの使い方

Herokuでスタート! はじめてのPaaSアプリケーション開発 第3回


  • X ポスト
  • このエントリーをはてなブックマークに追加

Herokuにデプロイ

 ローカルでの動作確認ができたら、いよいよHerokuにデプロイしてみます。

 まず、Heroku Postgres上にもテーブルを作成する必要があるので、heroku pg:psqlで入ってCREATE TABLEを実行します。

$ heroku pg:psql
codezine-sample::BLUE=> CREATE TABLE message_board (
codezine-sample::BLUE=>   id serial primary key,
codezine-sample::BLUE=>   nickname varchar(40) COLLATE "C" NOT NULL,
codezine-sample::BLUE=>   message text COLLATE "C" NOT NULL,
codezine-sample::BLUE=>   post_date timestamp default current_timestamp
codezine-sample::BLUE=> );

 

 続いてgit pushです。

$ git push heroku 03:master
$ heroku open

 

 前回はローカルのmasterブランチの内容をHerokuにpushしたので「git push heroku master」としましたが、今回は03ブランチをpushするので「git push heroku 03:master」としています。

 うまくいけばHeroku上で掲示板アプリケーションを見ることができるはずです。

 

TimeZoneに関する注意

 最後に、もう1つのハマりポイントであるTimeZoneについて説明しておきます。

 HerokuもHeroku Postgresも、TimeZoneの設定はUTC(協定世界時)になっています。 一方、この記事を読んでいる人のほとんどは日本人でしょうから、OSのTimeZoneはJST(日本標準時)になっていると思います。 PostgreSQLのTimeZoneは設定次第ですが、デフォルトインストールしている場合はOS設定と同じになります。

 TimeZoneの問題は関連するコンポーネントが多くなるほど厄介になりますが、ローカルでの開発に仮想環境を使う場合などは、最初からすべてUTCにしておくのがお勧めです。 それが難しい場合でも、Javaの起動オプション「-Duser.timezone」を明示するなど、対処方法はいくつかあるので、開発の早い段階で、Heroku上でも日付時刻が想定どおりに出力されていることを確認しましょう。

 

アプリをカスタマイズしてみよう

 今回使用した掲示板アプリケーションはそれほど凝ったものではありません。 直近の20件しかメッセージを表示していませんし、メッセージの編集や削除もできません。 興味のある方は自分でカスタマイズしてみてください。

 まずは、masterブランチに今回の内容(03ブランチ)をmergeします。

git checkout master
git merge 03

 

 個人で開発する場合はmasterブランチで直接作業してかまいませんが、gitを本格的に使いこなしたい人はトピックブランチを切ってそちらで開発する習慣をつけるとよいでしょう(このあたりはgitの解説書などを参照してください)。

 今後もこのアプリケーションは拡張していきますが、BoardServlet.javaはもう触ることはないと思うので、コンフリクトが起こる心配はおそらくありません(Database.javaは修正するかもしれません)。

 Heroku Postgres関連ではpgbackupsやDataClipなど他にも紹介したい機能があるのですが、それらはまたいずれ。

 次回はアプリ開発から少し離れて、Dynoに関する説明と日常的によく使うherokuコマンドを紹介します。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Herokuでスタート! はじめてのPaaSアプリケーション開発連載記事一覧

もっと読む

この記事の著者

小西 俊司(コニシ シュンジ)

株式会社Giveryに所属するエンジニア。CODEプロジェクトというエンジニアの成長を促進するプラットフォーム開発のテックリード。Herokuも使った新しいプロダクトを今秋リリース予定。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8279 2014/12/17 20:50

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング