the industrial

都内で働くITエンジニアの日記

【リベンジ】PlayframworkとClearDBを使ったWebアプリをHerokuにデプロイする手順メモ

前回「PlayframworkとClearDBを使ったWebアプリをHerokuにデプロイする手順メモ」なんてのをやったんだけど、結局稼働せず。。。
それから暫くHerokuの勉強を中心に頑張ってて、やっと原因らしいものが判明。 
Playframeworkは2.2.1を利用しているのだけど、2.2からはProcfileの書き方が変わったそうで
前は

web: target/start -Dhttp.port=${PORT} {JAVA_OPTS} -Ddb.default.url=${DATABASE_URL}

とか書いてたんだけど、今は

web: target/universal/stage/bin/my_apprication -Dhttp.port=${PORT} -Ddb.default.url=${DATABASE_URL}

って書かなきゃ行けないみたい。「my_apprication」はアプリケーション名で、スネーク型で書けとのこと。
あと、{JAVA_OPTS}は書かなくて良いらしい。

アプリを作成してからHerokuにデプロイするまでのコマンドはこんな感じ。
まずgitの初期化。

$ git init
$ git add .

Herokuの設定と、ClearDBのインストール、さらにClearDBのエンドポイントを確認し、HerokuのDB設定に setする。

$ heroku create my-apprication$ heroku addons:add clear
$ heroku config

=== my-apprication Config Vars
CLEARDB_DATABASE_URL: mysql://ユーザー:パスワード@us-cdbr-east-05.cleardb.net/データベース名?reconnect=true

$ heroku config:set DATABASE_URL='mysql://ユーザー:パスワード@us-cdbr-east-05.cleardb.net/データベース名?reconnect=true&characterEncoding=UTF-8&characterSetResults=UTF-8'

そしたらPlayのapplication.confファイルにDB設定を追加。
conf/application.conf
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://us-cdbr-east-05.cleardb.net:3306/データベース名?reconnect=true&characterEncoding=UTF-8&characterSetResults=UTF-8"
db.default.user=ユーザー
db.default.password="パスワード"
# 下記はClearDBをミニマムで利用する際の設定で、まだ詳細はしらべてないけど、まあ書いてある通りですね
db.default.partitionCount=1
db.default.maxConnectionsPerPartition=5
db.default.minConnectionsPerPartition=5

gitのコミットと、プッシュ(=デプロイ)
git commit -m "初回コミット"
git push heroku master

これでok。
ちなみにheroku createするとgitの設定も書き換えてくれてるっぽい。
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "heroku"]
url = git@heroku.com:my-apprication.git
fetch = +refs/heads/*:refs/remotes/heroku/*
[branch "master"]
remote = heroku
merge = refs/heads/master