スポンサーリンク
とあるrailsアプリでjavascriptをいじっていた時のこと。
Google先生に聞いた手順を何気なく実行したら、その後アプリが起動しなくなってしまい、冷や汗をかいたのでメモしておきます。
作業内容としては、application.js を編集した後にbundle updateを実行し、railsを再起動するという内容。
ここでアプリが起動しなくなりました。
起動すると以下のようなエラーが出ました。
Gem::LoadError (Specified 'postgresql' for database adapter, but the gem is not loaded. Add `gem 'pg'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).):
元々起動できていたし普通にDBも使えてたので、なんか変だぞ?と思ったものの、まあなんか手順飛ばしたかな〜?と思い再度手順を実行。しかし色々修正を試みても一向に改善されず、ここで手順を見直し、ようやく「あれ、bundle updateってそんな気軽にしていいんだっけ?」と気付きました。
で、原因なのですが、やはりbundle updateの問題でした。
具体的にはpgというgemのバージョンが上がってしまったことが原因でした。
元々はpgのバージョンは0.21.0だったのですが、bundle updateを実行したことにより1.0.0になってしまったため起動しなくなったようです。
私は
という対処で復旧しました。具体的な手順は以下の通りです。
$ gem uninstall pg
Select gem to uninstall:
1. pg-0.18.4
2. pg-0.20.0
3. pg-0.21.0
4. pg-1.0.0
5. All versions
> 4
これでpg-1.0.0は削除されました。
Gemfileの該当箇所に '0.21.0'と追記
$ vim Gemfile
# Use postgresql as the database for Active Record
### gem 'pg' <== 元々の記述
gem 'pg', '0.21.0'
最後にbundle installを実行して完了です。
$ bundle install
以上となります。
起動しなくなった時はやっちまった感でいっぱいでしたが、割とすぐ直せたのでよかったです。
スポンサーリンク