【Rails】間違ってローカル環境で本番環境の bundle install をして訳分からなくなった時に行なった対策
はじめに
趣味アプリの開発で、Rails で API を作っていた際、久々にローカルと本番を間違って bundle install をかけました。
ローカルでbundle install --path vendor/bundle --without test development
を走らせたということです。。。
その時にうまいこと復活できた(多分)ので、まとめました。
起こったこと
よく分からないエラーがたくさん出て、rails s
など様々なことができなくなる。
対策
.vendor/bundle の削除
上記のコマンドを実行すると、おそらくアプリケーション直下に bundle のディレクトリが出来上がっていると思います。怖いと思いますが、まずはそれを丸ごと削除してください。
Gemfile.lock を書き換える
その状態でrails s
などを実行すると、先ほどとエラー内容は変わりますが、本番環境で入れようとしていた gem(例えば mysql2 といった本番環境のデータベースに必要な gem など)が無い!と怒られます。
これは、インストールされている Gem と Gemfile.lock に書かれている内容が一致しないことで起こる問題のようです。
ということで、Gemfile.lock の内容を全て削除します。
その上で、github などのバージョン管理ツールから、間違った bundle install をする前の Gemfile.lock の情報をコピーし貼り付けてください。
終わり
自分はこちらの方法で直りました!ヤベーやっちまった。。。と焦りがちですが、なんとかなりました。
もし、間違いや危険な行為などがありましたらご指摘お願いします。