◼️はじめに
Herokuにデプロイした際に
error: failed to push some refs to
のエラーが発生したので記録しておきます。
◼️やったこと
1.新しくHerokuのurlを取得
$ heroku create
2.Gemfileに以下のgemを追加
gem 'net-smtp'
gem 'net-imap'
gem 'net-pop'
3.インストール
$ bundle install
4.Heroku buildpackを追加
$ heroku buildpacks:set heroku/ruby
$ heroku buildpacks:add --index 1 heroku/nodejs
5.HerokuにPostgreSQLのアドオン追加
$ heroku addons:create heroku-postgresql
6.Herokuにデプロイ
$ git push heroku master
◼️エラー発生
git push heroku master
をするとエラーが発生
▼原因
stackのバージョンが違うためエラーが出ている
▼対応
1.stackのバージョンを確認
$ heroku stack
2.heroku-22になっていることが判明
3.以下コマンドでheroku-22からheroku-20へ変更する
$ heroku stack:set heroku-20
◼️エラー発生②
heroku run rails db:migrate
をするが再度エラー発生
Bootstrap記載漏れやJavascripを消去したりする中でこのエラーに出会う
config/database.yml ファイルの記述に注目
PostgreSQLの場合
default: &default
adapter: postgresql // ここがPostgreSQL
encoding: unicode
# For details on connection pooling, see Rails configuration guide
# https://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
となるところを、rails newの時にPostgreSQLを指定していないと以下の記載になるそうです。
default: &default
adapter: sqlite3 // ここがSQLite3
encoding: unicode
# For details on connection pooling, see Rails configuration guide
# https://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
そのため以下原因に辿り着きました。
(通っているスクール(Dpro)のメンターさんにご教授頂きました🙇)
▼原因
Railsアプリをrails newしたとき、DBをPostgreSQLにするオプションを忘れていたのが原因...
まだまだ慣れておらず単純なことを失念しておりました...
▼対応
1.SQLite3 から PostgreSQL へ変更するコマンドを実行
$ rails db:system:change --to=postgresql
2.以下、を行いデプロイ完了
rails db:migrate
git add .
git commit
git push heroku master
heroku run rails db:migrate
◼️最後に
初めてのHerokuデプロイで、エラーがいくつも発生し時間を費やしてしまいましたが、
エラー原因は単純なことでした。
初歩的なミスをなくしていけるように精進します。
参照
Heroku
https://devcenter.heroku.com/ja/articles/stack
Rails 6 で DB を SQLite3 から PostgreSQL に変更するのはコマンド一発
https://k-koh.hatenablog.com/entry/2020/08/14/144129