#問題
- herokuにpushする時に
SQlite3はherokuでは使えないから、本番環境ではPostgresqlを使うような設定に変更してね
と言われた -
git push heroku master
と打つと、下記のような感じのエラーが吐き出される
remote: ! Failed to install gems via Bundler.
remote: ! Detected sqlite3 gem which is not supported on Heroku:
remote: ! https://devcenter.heroku.com/articles/sqlite3
#対応
- エラー文の中に下記のような、特定のディレクトリーやファイルにPermissionがないというエラーが出た時は、
sudo chown -R <ディレクトリー名やファイル名>
でオーナーを自分に変えたり、chown u+w <ディレクトリー名やファイル名>
で書き込み権限を与えたりすると対応できる。
Permission denied @ dir_s_mkdir - /Users/{Username}/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-18/2.5.0-static/
- 下のように、このgemをinstallしてみて!といったエラー文を確認して、gem installしようとした際にも、上記のようなパーミッションのエラーが吐き出されることがあるので、その時は上記の対応を取ると、解決に近く。
- 自分の場合は大体がパーミッション関係の問題だった
remote: An error occurred while installing sqlite3 (1.3.13), and Bundler cannot
remote: continue.
remote: Make sure that `gem install sqlite3 -v '1.3.13'` succeeds before bundling.
- 上記で色々試しても、まだエラーが出るようであれば、bundle installする際に
--without production
のコマンドをつけてみる- これはSQlite3を本番環境で使うから、開発環境には関係ないよ。特にローカル環境での作業には本番(prod)の話は関係しないからinstallしません!程度に勝手に解釈している(正しい理解がある人に是非突っ込んでいただきたい....!)
bundle install --without production