QA@IT

Heroku + Rails3.2.13 でエラーが出て困っています

4056 PV

Heroku + Rails3.2.13 でエラーが出て困っています。具体的には、

We're sorry, but something went wrong.

というエラーです。

ローカル環境は

  • ruby:1.9.3-p392
  • rails:3.2.13

Gemfileは、

group :test, :development do
  gem 'sqlite3'
  gem 'mysql2'
end

#heroku用
group :production do
  gem 'pg'
end

で、問題なくbundleされています。
前回のpush時は正常に動作していました。それから
モデル・コントローラを1つ程度実装してデプロイしたら解決できなくなりました。

下記も改めて実行済み。

heroku run rake db:create
heroku run rake db:migrate

また、ローカルで

rake assets:precompile

production.rbの

config.assets.compile = true

も試したのですが。エラーが解消しません。

  • PaaSのSqaleにデプロイして試したところ、
    同じようなエラーとなりました。しかし、rakeのバージョン違いが判明しGemfile.lockのrakeを変更しrake db:migrateしたら稼働しました。どうやらrake db:migrateでストップしていたようです。herokuも同じような理由だと予想しますが、「一度同じ環境からのデプロイで実行できていた」点から違う可能性もあります。
    -
  • heroku run rake --versionでは、10.0.4でありました。ですので、Sqaleとは別の理由のようです。Sqaleでは10.0.4から10.0.3に変更しました(Sqale上で10.0.3であったため) -

回答

私もよくハマります。ログの出力を見てみないとなんとも言えませんが次のどちらかで直らないでしょうか。

heroku run rake assets:precompile

heroku pg:reset --db SHARED_DATABASE_URLでデータベースを削除してからheroku run rake db:migrate

後者はデータを消してしまうので気をつけないといけませんけど、、

編集 履歴 (0)
  • ありがとうございます。後者のDB再作成にてエラーが解消されました。
    原因が不明なので今回の解決方法では運用するのが難しそうですね。。
    ありがとうございました。
    -

本番環境で起きたエラーは500.htmlが表示されるので、基本的にはログを見ることになりますが、ログのボリュームが増えてくると現実的ではなくなるし、エラーになってるのに気づかないまま放置されてるのもまずいので https://airbrake.io の無料版などを使うのがいいと思います。

編集 履歴 (0)
  • 回答ありがとうございます。PaaSの1つですかね?見た感じ管理しやすそうなサービスですね。参考になります、ありがとうございました。herokuエラーは1つ上の回答で解消されました。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。