Dokkuでデプロイ完了後にWebサイトにアクセスすると、500エラーが表示された。
$ dokku logs [アプリ名]
でログ表示したところ、以下のエラー表示。
$ dokku logs gnote
2019-05-02T09:40:33.619026419Z app[web.1]: => Booting Puma
2019-05-02T09:40:33.619222669Z app[web.1]: => Rails 5.2.2 application starting in production
〜〜〜省略〜〜〜
2019-05-02T09:53:34.455614159Z app[web.1]: F, [2019-05-02T09:53:34.455068 #13] FATAL -- : [f601323b-d419-4e72-9b23-f529dba57e7d] ActionView::Template::Error (PG::UndefinedTable: ERROR: relation "messages" does not exist
〜〜〜省略〜〜〜
原因
ActionView::Template::Error (PG::UndefinedTable: ERROR: relation "messages" does not exist
とあるのは、「messages」という名前のテーブルが見つからない、とのこと。
dokkuでRailsをデプロイしたあとは、migrateしてテーブルを作る必要があるが、それを忘れていた。
対応
$ dokku run [アプリ名] rails db:migrate
を実行してテーブルを作成する。
$ dokku run gnote3 rails db:migrate
no matching process entry found
D, [2019-05-02T10:03:58.304617 #11] DEBUG -- : (29.1ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)
D, [2019-05-02T10:03:58.312144 #11] DEBUG -- : (3.7ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
D, [2019-05-02T10:03:58.313318 #11] DEBUG -- : (0.3ms) SELECT pg_try_advisory_lock(752353171148416320)
D, [2019-05-02T10:03:58.331266 #11] DEBUG -- : (0.9ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
I, [2019-05-02T10:03:58.333882 #11] INFO -- : Migrating to CreateMessages (20190102054139)
D, [2019-05-02T10:03:58.338959 #11] DEBUG -- : (0.3ms) BEGIN
== 20190102054139 CreateMessages: migrating ===================================
-- create_table(:messages)
〜〜〜省略〜〜〜
テーブルが作成されて、無事にWebサイトが表示できた。