【Heroku】배포시 We're sorry, but something went wrong.해결 방법

로컬 환경에서 구축하여 Heroku에 배포했지만 이런 화면이 나왔습니다.
We're sorry, but something went wrong.

원인



개발 환경(deveropment)은 MySQL로 하고 있었지만, Heroku의 표준 데이타베이스는 PostgreSQL이지만, MySQL의 그대로였다.

해결 방법



gem에 아래를 추가하여 프로덕션 환경에서는 postgreSQL을 적용합니다.
group :production do
  gem 'pg', '>= 0.18', '< 2.0'
end

group :production do 로 프로덕션 환경만 적용됩니다.

bundle install 하지만, 개발 환경만으로 프로덕션 환경에서는 불필요하므로, --without production 를 붙입니다.
$ bundle install --without production

그런 다음 database.yml을 편집합니다.
기본적으로 이렇게 되어 있다고 생각합니다.

database.yml
production:
  <<: *default
  database: <app_name>_production
  username: <app_name>
  password: <%= ENV['<app_name>_DATABASE_PASSWORD'] %>

이것을 이렇게 다시 씁니다.

database.yml
production:
  adapter: postgresql
  encoding: unicode
  pool: 5
  database: <app_name>_production
  username: <app_name>
  password: <%= ENV['<app_name>_DATABASE_PASSWORD'] %>

그리고는, heroku push 하고, 잊지 않고 heroku run rails db:migrate 하면 OK입니다!

좋은 웹페이지 즐겨찾기