記事概要
Renderで不具合が発生した際の対応方法について、まとめる
エラーログの確認
- ログを確認するアプリを、選択する
- メニューから「Monitor」の「Logs」を選択する
- ログが表示される
データベースをリセット
ケース
下記条件に当てはまる場合に実施する
- カラムの追加などのテーブルの変更を行った
- ローカルでは、変更内容が正しく反映する
- Renderでデプロイを行った際に、エラーは出ないがテーブルに上記の変更が反映されない
注意点
登録済みのデータが、すべて削除される
手順(Rails)
-
bin/render-build.shを変更する-
bundle exec rake db:migrateを、コメントアウトする -
DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:migrate:resetを、追加する-
DISABLE_DATABASE_ENVIRONMENT_CHECK=1
→本番環境のデータベースを削除するために必要な設定
→本番用のデータベースには重要なデータが含まれるため、通常は削除できない -
bundle exec rake db:migrate:reset
以下を実施したことと同義になる- rake db:drop(データベースの削除)
- rake db:create(データベースの作成)
- rake db:migrate(マイグレーションファイルの実行)
bin/render-build.sh#!/usr/bin/env bash # exit on error set -o errexit bundle install bundle exec rake assets:precompile bundle exec rake assets:clean # bundle exec rake db:migrate DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:migrate:reset -
-
- TablePlusを終了する ※データベースをTablePlusで開いている場合、削除できない
- GitHubにプッシュし、更新する
- GitHubにコードをプッシュすると、Renderのデプロイが実行される
- Railsの設定をもとに戻す
bin/render-build.sh
#!/usr/bin/env bash # exit on error set -o errexit bundle install bundle exec rake assets:precompile bundle exec rake assets:clean bundle exec rake db:migrate