LoginSignup
2
0

More than 3 years have passed since last update.

[Heroku]デプロイ失敗から得られた2つの知見[備忘録]

Posted at

tl;dr

1. herokuではmigration fileは日付順にmigrateされるため、外部キーを設定したmigration fileがある場合は、migrateの順番を考慮する。

2. heroku logsより詳細な情報が欲しいならheroku run rails cを使う


環境

ruby 2.6.5
rails 5.1.6.2
heroku/7.39.0 linux-x64 node-v12.13.0


問題1

heroku run rails db:migrateを行うと以下のようなエラーが発生した

PG::UndefinedTable: ERROR:  relation "test_types" does not exist
: CREATE TABLE "param_values" ("id" bigserial primary key, "name" character varying, "test_type_id" bigint, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL, CONSTRAINT "fk_rails_j74mou9ds5"
FOREIGN KEY ("test_type_id")
  REFERENCES "test_types" ("id")
)

原因

親(参照元)のテーブルが作成される前に子のテーブルが作成されているから

対処

手動でmigration fileの名前を変更することで
migrationの順序を変更した。

//[timestamp]ではなく番号を割り振った

[timestamp]_create_test_types.rb
       ↓
01_create_test_types.rb

問題2

Herokuへのデプロイ後にサイトを開くとApplication errorのエラー画面が表示された

原因

heroku logsをしてみると
at=error code=H10 desc="App crashed"と出力された。
さらに、heroku run rails cをすると、
新規に追加したテーブルのカラム名のタイポが原因であることが分かった。

対処

タイポを修正し、再びgit push herokuする

参考文献

[PG::UndefinedTable: ERROR: relation "XXXXXX" does not exist] への対応

https://qiita.com/after4649/items/0144ee436d82822d2535

[Ruby on Rails Tutorial]Herokuにデプロイ後Application error[H10 (App crashed)]が発生した時の対処法

https://qiita.com/m-itoidcf/items/77d064147a32169b5449

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0