Railsチュートリアルを行っていて、テキスト通りに進めていたはずなのですが、herokuにデプロイ出来ませんでした。
こんなエラーが出ていました。(ちなみにcloud9は使わずにMac OSで開発しています。)
本番環境にsqllite3が使われていた
ターミナル
remote: !
remote: ! Failed to install gems via Bundler.
remote: ! Detected sqlite3 gem which is not supported on Heroku:
remote: ! https://devcenter.heroku.com/articles/sqlite3
remote: !
ん?どうやら、本番環境にsqlite3が使われている??
この記事を参考にしてみました。
Gemfileの中身は問題なさそうでした。
/config/database.yml
を見てみると、
/config/database.yml
production:
<<: *default
database: db/production.sqlite3
ここが違うようです。
こちらに書き換えました。
/config/database.yml
production:
<<: *default
adapter: postgresql
encoding: unicode
pool: 5
これでデータベースのエラーは解消出来ました!
Bootstrapが上手く読み込まれてない??
今度は、このようなエラーが出ました。
ターミナル
remote: !
remote: ! Precompiling assets failed.
remote: !
エラー原因の箇所を見てみると、
ターミナル
remote: Caused by:
remote: Sass::SyntaxError: File to import not found or unreadable: bootstrap-sprockets.
どうやら、bootstrapが読み込まれてないみたい?
gemfileに gem 'bootstrap-sass'
を追加。
試してみるも、また同じエラー。
- 【Heroku/Rails】デプロイで起こる「Precompiling assets failed.」の解決法 こちらの記事を参考にして、
config/application.rb
config.assets.initialize_on_precompile = false
この記述を追加。
まだ直らず。
他の記事を探してみました。
そして、こちらのコマンドを試してみた。
ターミナル
gem install sprockets
そして bundle install
。
で、
ターミナル
git push heroku master
を実行。
デプロイ出来ました!!!
まとめ
今回はcloud9を使わず、自分のMacOS環境で行っていましたが、どこかで手順を間違えていたのかもしれません。
同じようにherokuにデプロイできない方がいれば、試してみてください。