はじめに
久々にHerokuにRailsアプリをデプロイしようとしたら、色々手順を忘れていたので備忘録として投稿します。
やること
1. Herokuにアプリを作る 2. Herokuにデプロイ 3. HerokuのDBをマイグレート 4. 表示確認
Herokuにアプリを作る
※MacにHerokuのCLIツールが入ってない人はこちらをまず実行
$ brew tap heroku/brew && brew install heroku
CLIコマンドでHerokuアプリを作ります。
基本的な形式は「heroku create アプリ名」の形になります。
$ heroku create taskleafs Creating ⬢ taskleafs... done https://taskleafs.herokuapp.com/ | https://git.heroku.com/taskleafs.git
2. Herokuにデプロイ
$ git push heroku master Counting objects: 272, done. Delta compression using up to 4 threads. Compressing objects: 100% (250/250), done. Writing objects: 100% (272/272), 47.07 KiB | 1.00 MiB/s, done. Total 272 (delta 96), reused 0 (delta 0) remote: Compressing source files... done. remote: Building source: remote: remote: ! Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used. remote: Detected buildpacks: Ruby,Node.js remote: See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order remote: -----> Ruby app detected remote: -----> Compiling Ruby/Rails remote: -----> Using Ruby version: ruby-2.5.1 remote: -----> Installing dependencies using bundler 1.15.2 <中略> remote: Verifying deploy... done. To https://git.heroku.com/taskleafs.git * [new branch] master -> master
3. HerokuのDBをマイグレート
現時点ではHerokuのRailsアプリの本番DBがマイグレートされておらず、アプリを正常に起動することが出来ません。なので、ローカル同様にHerokuの本番DBもマイグレートします。
$ heroku run rails db:migrate Running rails db:migrate on ⬢ taskleafs... up, run.7159 (Free) D, [2019-04-14T06:22:09.656172 #4] DEBUG -- : (55.1ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY) D, [2019-04-14T06:22:09.703581 #4] DEBUG -- : (40.1ms) 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-04-14T06:22:09.707422 #4] DEBUG -- : (1.2ms) SELECT pg_try_advisory_lock(8796728096074453815) D, [2019-04-14T06:22:09.723056 #4] DEBUG -- : (1.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC I, [2019-04-14T06:22:09.724373 #4] INFO -- : Migrating to CreateTasks (20190223085137) D, [2019-04-14T06:22:09.728453 #4] DEBUG -- : (1.5ms) BEGIN == 20190223085137 CreateTasks: migrating ====================================== -- create_table(:tasks) D, [2019-04-14T06:22:09.770748 #4] DEBUG -- : (41.6ms) CREATE TABLE "tasks" ("id" bigserial primary key, "name" character varying, "description" text, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) -> 0.0423s == 20190223085137 CreateTasks: migrated (0.0424s) ============================= D, [2019-04-14T06:22:09.776271 #4] DEBUG -- : ActiveRecord::SchemaMigration Create (1.7ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190223085137"]] D, [2019-04-14T06:22:09.778728 #4] DEBUG -- : (2.2ms) COMMIT D, [2019-04-14T06:22:09.786493 #4] DEBUG -- : ActiveRecord::InternalMetadata Load (0.9ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2 [["key", "environment"], ["LIMIT", 1]] D, [2019-04-14T06:22:09.793362 #4] DEBUG -- : (0.7ms) BEGIN D, [2019-04-14T06:22:09.795318 #4] DEBUG -- : ActiveRecord::InternalMetadata Create (1.0ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key" [["key", "environment"], ["value", "production"], ["created_at", "2019-04-14 06:22:09.793719"], ["updated_at", "2019-04-14 06:22:09.793719"]] D, [2019-04-14T06:22:09.797004 #4] DEBUG -- : (1.4ms) COMMIT D, [2019-04-14T06:22:09.797960 #4] DEBUG -- : (0.8ms) SELECT pg_advisory_unlock(8796728096074453815)
4. 表示確認
heroku openコマンドでコンソールからアプリを起動する
$ heroku open
最後に
仕事用のPCにHeroku CLIが入っていないことに気付き、Heroku CLIを入れるところから久々にやってみました。 普段の仕事ではHerokuをほとんど使わないので、色々と思い出すきっかけになってよかったです。 個人開発では積極的に触れていこうと思った次第。