ローカル環境で構築して、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です!