2012年12月14日金曜日

「RailsをHerokuにデプロイ」でハマったこと。そしてその解決方法。


Railsを勉強中です。

この参考書を見ながらやってます。






せっかくサンプルを作ったので、公開したくなりました。

いろいろ調べてたら、HerokuというPaaSを見つけました。

無料から始められるようなので、とりあえず独学でHerokuにデプロイしてみました。


で、途中、コケまくりました。


なので、ハマったところを備忘録的に記録します。


参考にしたのは、この辺のサイトです。


参考1 Herokuへのデプロイ方法

http://www.opentone.co.jp/news/release/article03/article0305.html

参考2 SQLite3からPostgreSQLにしてデプロイする方法

http://yuriponx.com/2012/05/08/heroku%E3%81%A7rails3-2%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99/


参考3 エラー画面「We’re sorry, but something went wrong.」から逃れる方法

http://shirusu-ni-tarazu.hatenablog.jp/entry/2012/01/16/031655



以下、顛末。

ステップ1 Herokuへのデプロイ



まず、参考1のサイト、下の方にHerokuへのデプロイ方法が載っています。

これに従って、デプロイしました。

ところが、SQLite3のインストールで必ず失敗してしまいます。




ステップ2 PostgreSQLでデプロイ & アセットのプリコンパイル


参考2のサイトによると、HerokuはSQLiteには対応していらしい。

なので、参考2のサイトに従って、対応しているPostgreSQLを使う設定にした。



※Herokuでは、ローカルとHerokuは同じDBを使うことを推奨しているらしい。SQLiteとPostgreSQLで違う動作したら困るからね。

さらに、アセットをプリコンパイルする必要があるらしい。

これでとりあえずデプロイはできた。

※あとから分かったけど、app/assetsの中の画像を変えるときとかもプリコンパイルをする必要があるらしい。

ステップ3 config.assets.compileの設定をtrueにする


ステップ2でデプロイまではできたけど、ブラウザからサイトを見ると

「We’re sorry, but something went wrong.」

のエラー画面になってしまう。


ここでかなりハマってしまいました。


試行錯誤の末、参考3のサイトを発見。なんとか解決しました。


RAILS_ROOT(Railsのプロジェクトディレクトリ)/config/environments/production.rb
に、
config.assets.compile = false
という項目があるので、これをtrueにします。


だそうです。

これでデプロイしなおすと、 サイトが正しく表示されました。




※せっかく、デプロイできたのですが、参考書を見て作ったモノが著作権的に公開OKなのかわからないので、ここでは、画面キャプチャだけ載せておきます。(画像だけ差し替えました)

こんな感じ(リスト)

こんな感じ(追加・編集画面)


こんな感じのサイトがいとも簡単にできる! のがrailsの魅力のはずですが、独学でやるとハマってしまって大変です。。。一度通過すればあとは楽ですが。。。



以上

Herokuとの格闘の記録でした。


※せっかくここまでできたので、いつか、カスタマイズして公開できればいいと思っています。

0 件のコメント:

コメントを投稿