herokuで作ったやつをmogokに載せてみる

2013/11/16 15:11

諸事情にによりherokuで動かしていたRailsアプリをmogokで動かす事となりました。
だけどやってみるとクラウドの違いでいろいろとでてきました。

やったこと

  • いろいろとライブラリが違う
  • 環境変数(ENV)の使用箇所を修正

環境変数が設定出来ない

環境変数が設定できなため他のクラウドサービスを使う際にシークレットキーがプログラムに直接埋め込む必要が発生します。
mogok env が未実装っていう情報もあるんですが。
将来的に設定出来る事を期待して今回はブランチで逃げようと思います。

まずはmogok用のブランチを作成します。

git branch -b mogok
  • 環境変数使用箇所を修正

私の場合はconfig/initializers内に集約しているのでフォルダ内のENVの箇所を修正。

例)Facebookの場合

  • 修正前
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'],
           :scope => 'email,user_birthday,read_stream', :display => 'popup'
end
  • 修正後
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'XXXXX', 'XXXXX',
           :scope => 'email,user_birthday,read_stream', :display => 'popup'
end

使うライブラリを変える

mogok用に資源を修正します。

  • Gemfile.lock
bundler (= 1.1.3) # bundlerを1.1.3で固定
  • Gemfile
# ruby '2.0.0'  # rubyの指定を削除
# gem 'pg' # postgress削除
# gem 'rails_12factor' # heroku独自ライブラリ削除
gem 'mysql2' # mysqlを追加