読者です 読者をやめる 読者になる 読者になる

三流プログラマの雑記

プログラム、ゲーム、株、その他雑記など書いてます。

Heroku + bitbuket + wercker DE サイト構築!

Ruby on Rails Ruby

いやはや、遅くなりましたが明けましておめでとうございます。

さてはて、年明け早々パチンコに一生懸命になりすぎるという残念な正月を迎えてしまったがゆえに、
今年こそはパチンコの収支表でも作成してやろう!ってことで三が日が終わってから作ってました。
※ 残念なパチンコ結果はページ下部にて公開中

とりあえず正月ボケした頭を再起動+スピーディーにということで、
若干作りに不安を覚えながらもごーりごりRailsのコードを書きながら
ちょいと前から気になっていた Device を使って、Herokuで公開までしてみました。

パチンコ・パチスロ収支表

うん、、、デザインセンスが無いので、bootstrapを使ったものの、、、如何せん微妙な出来になってしまった。
そして問題はユーザ登録部分が、httpsじゃないってことだ!どうなってるんだジョジョー!!

TODOリスト:httpsに対応する
※いつか、、、ね。Herokeは共有httpsを無料提供しているからリンクをhttpsにしてしまえばそれで一応完了に、、、(ry

TODOリスト:rspec書く
テスト駆動開発って言葉はどこに行ったんだ、、、

なんか色々すみません。開発:7時間、デザイン:3時間(Bootstrap難しい><;)、デプロイ:2時間(想定以上に時間が掛かった)

でだ、ソース管理に bitbuket を使用しているわけですが、
ローカル環境で heroku と bitbuket をごにょごにょしながらのデプロイは面倒だと思ったわけです。

そこでぐぐってみると

bitbuket(ソース管理) => wercker(デプロイツール) => Heroku(サーバ)

というなんとも俺がやりたいことをスマートに実現してくれる方法があるじゃまいか!

さて、今回作成したパチンコ収支表はRails4系とMySQLを使って構築してました。

が!しかし、HerokuはデフォルトでPostgreSQLとなっているため、
MySQLを使用したい場合結構面倒な手順を取らないといけないらしい。(今回環境構築する上で一番時間が掛かった)

  1. Heroku に クレジットカードの登録(登録したくない人はpgで頑張れ!)
  2. ClearDB MySQL Database をGUIからでもCUIからでもいいので登録
  3. ClearDB MySQL Database 内からID、PWDを取得
  4. 「heroku config --app $APP_NAME | grep CLEARDB_DATABASE_URL」でmysqlの設定を取得
  5. mysql2を使用しているので、「heroku config:set DATABASE_URL='mysql2://CLEARDB_DATABASE_URLのアドレス' --app $APP_NAME」で config を設定
  6. database.yml の production の database: に <%= ENV['DATABASE_URL'] %> と指定
  7. MySQL の ID, PWD は wercker に登録したりしておく

さて、MySQLの設定はとりあえずこれぐらいで

Githubのプライベートリポジトリでも無料で使えるCI、Werckerを使ってrails newからHerokuのデプロイまでやってみる | mah365
このページやグーグル先生の検索結果を参考に、wercker の設定を行う。
ここがちょっと時間が掛かったけれど、一度設定できると後は楽
ここで方法をゴリゴリ書くより、グーグル先生に聞いたほうが解説ページも豊富でわかりやすいので手順は割愛

HerokuのAPIキーをwerckerに登録して、wercker.yml の設定を行って bitbuket に push するようにすれば、自動で Heroku にデプロイしてくれるので便利!

Capistrano を勉強がてら使いたかったけど、、、まぁ、、、いっかということで


さて、パチンコ収支表の使い方ですが、、、

  1. ユーザ登録
  2. お店登録
  3. 遊戯結果を登録

こんな感じかな。なおベータ版どころか個人用のものなので
勝手に仕様が変わったり色々変わることもあったりします(汗

ちなみに今月の収支はこんな感じ。
この結果を見れば、三が日の結果からパチンコ収支表作ろうと思うよね!
f:id:morio_1101:20150112230300p:plain