Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up

Heroku スターターガイド (Ruby)

​はじめに

このチュートリアルでは、Ruby アプリをデプロイする方法を簡単に紹介します。

少し時間を取って仕組みを学び、Heroku を最大限に活用できるようにしましょう。

このチュートリアルでは、以下が用意されていることを前提としています。

  • 確認済みの Heroku アカウント
  • ローカルにインストールされた Ruby 3.0.1。Ruby および Rails のインストールについては、​OS X​、​Windows​、​Linux​ のガイドを参照してください。
  • ローカルにインストールされた ​Bundler​。gem install bundler​ を実行します。
  • Eco dyno プラン​のサブスクリプション (推奨)

Windows をお使いの場合は、「​Heroku スターターガイド (Ruby) (Microsoft Windows)​」を参照してください。このガイドでは、Windows 環境に適したツールを使っています。

Windows 用ガイドを使わない場合、​bundle install​ を実行することはできません。場合によっては、OpenSSL と Puma Web サーバーを手動でインストールする必要があります。

まず、​OpenSSL をダウンロード​します。次に、ダウンロードした lzma を ​7Zip​ で展開してから、tar ファイルを ​ C:\openssl​ に展開します。

ファイルが正しい場所に格納されていることを確認します。

​$ dir c:\openssl
bin    include    lib   ssl

次に、以下を実行します。

$ gem install puma -- --with-opt-dir=c:\openssl

上記の処理が終了したら、以下を実行します。

$ bundle update puma

Heroku dyno、Heroku Postgres、および Heroku Data for Redis の無料プランは 2022 年 11 月 28 日で提供を終了します​。

低料金プラン​を使用してこのチュートリアルを完了することをお勧めします。資格のある学生の皆様は、新しい Heroku for GitHub Students プログラム​を通じてプラットフォームクレジットを申請できます。

​設定する

Heroku CLI には、一般によく使われている Git​ というバージョン管理システムが必要です。Git がまだインストールされていない場合は、先に進む前に次の手順を完了してください。

  • ​Git のインストール
  • ​Git の初期設定

このステップでは、Heroku Command Line Interface (CLI) をインストールします。CLI は、アプリケーションの管理やスケール、アドオンのプロビジョニング、アプリケーションログの表示、アプリケーションのローカル実行に使用します。

お使いのプラットフォーム用のインストーラをダウンロードし、実行してください。

apple ロゴ​macOS

​$ ​brew tap heroku/brew && brew install heroku

windows ロゴ​Windows

​お使いの Windows に合ったインストーラをダウンロードします。

​64 ビット用インストーラ

​32 ビット用インストーラ

インストールしたら、コマンドシェルで heroku​ コマンドを使用できます。

​Windows では、コマンドプロンプト (cmd.exe) または Powershell を起動して、コマンドシェルを開きます。

heroku login​ コマンドを使って Heroku CLI にログインします。

$ heroku login
heroku: Press any key to open up the browser to login or q to exit
 ›   Warning: If browser does not open, visit
 ›   https://cli-auth.heroku.com/auth/browser/***
heroku: Waiting for login...
Logging in... done
Logged in as me@example.com

このコマンドにより、Web ブラウザで Heroku ログインページが開きます。ブラウザですでに Heroku にログインしている場合は、ページに表示されている[Log in]​ (ログイン) ボタンをクリックします。

この認証は、heroku​ と git​ コマンドが正常に動作するために必要な操作です。

外部の HTTP/HTTPS サービスへの接続にプロキシの使用が必要なファイアウォールを使っている場合は、heroku​ コマンドを実行する前に、ローカルの開発環境で HTTP_PROXY​ または HTTPS_PROXY​ 環境変数を設定​できます。

​アプリを準備する

このステップでは、Heroku にデプロイできるサンプルアプリケーションを準備します。

Heroku をはじめて使う場合は、 Heroku が提供するサンプルアプリケーションを使ってこのチュートリアルを行うことをお勧めします。

ただし、デプロイする既存のアプリケーションを用意してある場合は、 Heroku へのデプロイを準備する方法について、​この記事​を 参照してください。

サンプルアプリケーションをクローンして、Heroku にデプロイするコードのローカルバージョンを作成するには、ローカルのコマンドシェルまたはターミナルで次のコマンドを実行します。

$ git clone https://github.com/heroku/ruby-getting-started.git
$ cd ruby-getting-started

これで、シンプルなアプリケーションと、Ruby の依存関係マネージャである bundler が使用する Gemfile​ ファイルを格納した、正常な Git リポジトリを準備できました。

​アプリをデプロイする

このステップでは、アプリを Heroku にデプロイします。

dyno とデータベースを使用してこのチュートリアルを完了した場合、使用量のカウントに入ります。コストを抑制するために、完了したらすぐにアプリを削除​し、データベースも削除​してください。

 

Ruby ビルドパックにより、Mini Heroku Postgres データベースがアプリ用に自動プロビジョニングされます。Eco にサブスクライブしている場合、アプリではデフォルトで Eco dyno が使用されます。それ以外の場合は、デフォルトで Basic dyno が使用されます。Eco dyno プランは、アカウントのすべての Eco dyno 間で共有され、多数の小さなアプリを Heroku にデプロイする場合にお勧めします。詳細は、こちら​を参照してください。資格のある学生の皆様は、Heroku for GitHub Students プログラム​を通じてプラットフォームクレジットを申請できます。

Heroku でアプリを作成すると、Heroku でソースコードを受け取ることができるよう準備できます。

$ heroku create
Creating app... done, ⬢ polar-inlet-4930
http://polar-inlet-4930.herokuapp.com/ | https://git.heroku.com/polar-inlet-4930.git
Git remote heroku added

アプリを作成すると、heroku​ という名前の git リモートリポジトリも作成され、ローカルの git リポジトリと関連付けられます。

Heroku によってランダムなアプリ名 (この場合は polar-inlet-4930​) が生成されます。パラメータを渡して独自のアプリ名を指定することもできます。

コードをデプロイします。

$ git push heroku main
Enumerating objects: 365, done.
Counting objects: 100% (365/365), done.
Delta compression using up to 8 threads
Compressing objects: 100% (204/204), done.
Writing objects: 100% (365/365), 71.57 KiB | 35.79 MiB/s, done.
Total 365 (delta 141), reused 358 (delta 136)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.7.4
remote: -----> Installing dependencies using bundler 2.2.21
       ....
remote:        Asset precompilation completed (5.73s)
remote:        Cleaning assets
remote:        Running: rake assets:clean
remote: -----> Detecting rails configuration
remote:
remote:
remote: -----> Discovering process types
remote:        Procfile declares types     -> web
remote:        Default types for buildpack -> console, rake
remote:
remote: -----> Compressing...
remote:        Done: 74.3M
remote: -----> Launching...
remote:        Released v6
remote:        https://polar-inlet-4930.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/polar-inlet-4930.git
 * [new branch]      main -> main

アプリケーションがデプロイされました。

アプリ名で生成された URL にあるアプリを開きます。 次のショートカットを使うと、簡単に Web サイトを開くことができます。

$ heroku open

​ログを表示する

Heroku では、すべてのアプリと Heroku コンポーネントの出力ストリームを、時系列のイベントストリームに集約してログを作成するため、1 か所ですべてのイベントを確認できます。

実行中のアプリに関する情報を表示するには、ログコマンド​の 1 つである、heroku logs --tail​ を使います。

$ heroku logs --tail
2019-09-18T14:10:10.769652+00:00 heroku[web.1]: Starting process with command `bundle exec puma -C config/puma.rb`
2019-09-18T14:10:13.134654+00:00 app[web.1]: [4] Puma starting in cluster mode...
2019-09-18T14:10:13.134680+00:00 app[web.1]: [4] * Version 4.1.1 (ruby 2.4.4-p296), codename: Fourth and One
2019-09-18T14:10:13.134682+00:00 app[web.1]: [4] * Min threads: 5, max threads: 5
2019-09-18T14:10:13.134685+00:00 app[web.1]: [4] * Environment: production
2019-09-18T14:10:13.134689+00:00 app[web.1]: [4] * Process workers: 2
2019-09-18T14:10:13.134722+00:00 app[web.1]: [4] * Preloading application
2019-09-18T14:10:15.517611+00:00 app[web.1]: [4] * Listening on tcp://0.0.0.0:48362
2019-09-18T14:10:15.785166+00:00 heroku[web.1]: State changed from starting to up

ブラウザで再びアプリケーションを表示すると、別のログメッセージが生成されます。

ログのストリーム出力を停止するには、Control+C​ を押します。

​Procfile を定義する

Procfile​ は、アプリケーションのルートディレクトリにあるテキストファイルです。このファイルを使って、アプリの起動時に実行するコマンドを明示的に宣言します。

先ほどデプロイしたサンプルアプリの Procfile​ は、次のようになっています。

web: bundle exec puma -C config/puma.rb

単一のプロセスタイプの web​ と、その実行に必要なコマンドを宣言しています。 ここでは、web​ という名前が重要です。 これは、このプロセスタイプを Heroku の HTTP ルーティング​スタックにアタッチし、デプロイ後に Web トラフィックを受信することを宣言しています。 ここで使われているコマンドは、puma (Web サーバー) を実行し、設定ファイルを渡しています。

Procfile には追加のプロセスタイプを含めることができます。 たとえば、アイテムをキューから外す処理を実行するバックグラウンドプロセスを追加で宣言できます。

​アプリをスケールする

現在、アプリは単一の Web dyno​ で実行されています。 dyno とは、Procfile​ で指定されているコマンドを実行する軽量のコンテナのようなものです。

実行されている dyno の数を確認するには、ps​ コマンドを使います。

$ heroku ps
=== web (Eco): `bundle exec puma -C config/puma.rb`
web.1: up 2015/05/12 11:28:21 (~ 4m ago)

デフォルトでは、アプリは Eco dyno でデプロイされます。Eco dyno はアイドル状態 (トラフィックを何も受信しない状態) が 30 分続くとスリープします。 スリープすると、スリープ解除するときの最初のリクエスト時に数秒の遅延が発生します。その後のリクエストは正常に処理されます。 Eco dyno は、月ごとに割り当てられるアカウント別の Eco dyno 時間​を消費します。割り当て時間が残っている限り、Eco アプリはすべて稼働し続けます。

dyno がスリープしないようにするには、「dyno タイプ​」の記事で紹介されている Basic または Professional の dyno タイプにアップグレードできます。たとえば、アプリを Professional dyno に移行すると、Heroku に特定の数の dyno の実行を指示するコマンドを実行し、各 dyno で Web プロセスタイプを実行させて、アプリを簡単にスケールすることができます。

Heroku でアプリケーションをスケールするとは、実行する dyno の数を変更することを意味します。 Web dyno の数を 0 にスケールしてみます。

$ heroku ps:scale web=0

ブラウザのタブで更新ボタンを押してアプリにアクセスするか、heroku open​ コマンドを使ってブラウザのタブで開きます。 リクエストに応答できる Web dyno がないので、エラーメッセージが表示されます。

もう一度スケールしてみましょう。

$ heroku ps:scale web=1

​アプリの依存関係を宣言する

Heroku では、アプリのルートディレクトリに Gemfile​ ファイルがあると、そのアプリを Ruby アプリと認識します。

デプロイしたデモ用アプリには、事前に次のような Gemfile​ が用意されています。

source 'https://rubygems.org'
ruby '>= 2.5', '< 3.1'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '5.2.3'
# Use postgresql as the database for Active Record
gem 'pg', '~> 0.18'
# Use SCSS for stylesheets
gem 'sass-rails'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier'
...

Gemfile​ ファイルでは、アプリケーションと一緒にインストールする必要がある依存関係を指定します。 このファイルを使うと、Heroku でアプリケーションを実行するときに使用される Ruby のバージョンを判断することもできます。

アプリをデプロイすると、Heroku はこのファイルを読み出し、bundle install​ コマンドを使って適切なバージョンの Ruby と依存関係を一緒にインストールします。

アプリをローカルで実行するには、依存関係も事前にローカルにインストールする必要があります。 この Gemfile には、pg​ という依存関係があります。これは、Postgres をローカルでインストール​することで解決できます。 先に進む前に Postgres をインストールしてください。

コマンド which psql​ を実行するとコマンドラインに値が表示される場合は、Postgres が正しくインストールされています (実際の出力内容は異なる場合があります)。

$ which psql
/usr/local/bin/psql

次に、ローカルディレクトリで bundle install​ を実行して依存関係をインストールし、アプリをローカルで実行できるようにシステムを準備します。

$ bundle install
Using rake 12.3.3
Using concurrent-ruby 1.1.5
Using i18n 1.6.0
....
Using turbolinks 5.2.0
Using uglifier 4.1.20
Your bundle is complete!

依存関係がインストールされたら、アプリをローカルで実行する準備は完了です。

​アプリをローカルで実行する

お使いの開発環境でアプリをローカル実行するには、若干の作業が必要です。 Rails では通常データベースが必要です。このサンプルアプリケーションでは Postgres を使用しています。ローカルでのインストールについては、こちらの手順​を参照してください。

Rails アプリでもデータベースを使用するので、rake コマンドを使って適切なデータベースとテーブルを作成する必要があります。

$ bundle exec rake db:create db:migrate
== 20140707111715 CreateWidgets: migrating ====================================
-- create_table(:widgets)
   -> 0.0076s
== 20140707111715 CreateWidgets: migrated (0.0077s) ===========================

heroku local​ コマンドを使ってアプリケーションをローカルで起動します。このコマンドは、Heroku CLI の一部としてインストールされています。

$ heroku local web
2:25:39 PM web.1 |  [69863] Puma starting in cluster mode...
2:25:39 PM web.1 |  [69863] * Version 4.1.1 (ruby 2.6.3-p62), codename: Fourth and One
2:25:39 PM web.1 |  [69863] * Min threads: 5, max threads: 5
2:25:39 PM web.1 |  [69863] * Environment: development
2:25:39 PM web.1 |  [69863] * Process workers: 2
2:25:39 PM web.1 |  [69863] * Preloading application
2:25:40 PM web.1 |  [69863] * Listening on tcp://0.0.0.0:5000
2:25:40 PM web.1 |  [69863] Use Ctrl-C to stop
2:25:40 PM web.1 |  [69863] - Worker 0 (pid: 69864) booted, phase: 0
2:25:40 PM web.1 |  [69863] - Worker 1 (pid: 69865) booted, phase: 0

Heroku と同じように、heroku local​ も Procfile​ を確認して実行する内容を判断します。

Web ブラウザで「http://localhost:5000​」を開きます。ローカルで実行されているアプリが表示されます。

アプリのローカル実行を停止するには、CLI で Ctrl​+C​ を押して終了します。

​ローカルの変更をプッシュする

このステップでは、アプリケーションへのローカルでの変更を Heroku に反映させる方法を学びます。 例として、アプリケーションを変更して依存関係を追加し、それを使用するコードも追加します。

Gemfile​ を編集して gem 'cowsay'​ という行を追加し、cowsay​ gem の依存関係を含めます。

source 'https://rubygems.org'
ruby '>= 2.5', '< 3.1'

gem 'cowsay'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '5.2.3'
...

この gem を使用するように app/views/welcome/index.erb​ を編集します。ファイルの最初の数行を次のように変更します。

<pre>
<%= Cowsay.say("Hello", "Cow") %>
</pre>
...

ローカルでテストします。

$ bundle install
$ heroku local

「http://localhost:5000​」でアプリケーションにアクセスすると、ASCII アートが表示されます。

次は、このローカルの変更を Heroku にデプロイします。

Heroku へのデプロイは、ほとんどの場合、このパターンで行います。 まず、変更したファイルをローカルの git リポジトリに追加します。

$ git add .

次に、変更内容をリポジトリにコミットします。

$ git commit -m "Demo"

前と同じ方法でデプロイします。

$ git push heroku main

最後に、すべて正常に動作しているかどうかを確認します。

$ heroku open

​アドオンをプロビジョニングする

アドオンは、アプリケーションですぐに使える追加サービスを提供するサードパーティのクラウドサービスです。永続性、ログ記録、モニタリングなど、さまざまなアドオンがあります。

Heroku では、デフォルトで 1500 行のアプリケーションログが記録されますが、 完全なログストリームもサービスとして提供しています。複数のアドオンプロバイダがこのサービスを利用し、ログの永続化、検索、メールや SMS 通知などの機能を実現するログサービスを提供しています。

このステップでは、このようなログに関するアドオンの 1 つである、Papertrail をプロビジョニングします。

Papertrail​ のアドオンをプロビジョニングします。

$ heroku addons:create papertrail
Adding papertrail on polar-inlet-4930... done, v11 (free)
Welcome to Papertrail. Questions and ideas are welcome (support@papertrailapp.com).  Happy logging!
Use `heroku addons:docs papertrail` to view documentation.

アドオンがデプロイされ、アプリケーション用に設定されました。 アプリのアドオンは、次のコマンドで一覧表示できます。

$ heroku addons

このアドオンが動作していることを確認するため、アプリケーションの Heroku URL に数回アクセスします。アクセスする度にログメッセージが生成され、Papertrail のアドオンに送られるようになります。 Papertrail のコンソールにアクセスし、ログメッセージを確認します。

$ heroku addons:open papertrail

ブラウザで Papertrail の Web コンソールが開き、最新のログイベントが表示されます。 このインターフェースでは、検索したり通知を設定したりできます。

コンソールのスクリーンショット

​コンソールを起動する

One-off dyno​ で、heroku run​ コマンドを使ってコマンド (通常はアプリの一部を構成するスクリプトやアプリケーション) を実行できます。 このコマンドを使うと、ローカルのターミナルにアタッチされた REPL プロセスを起動することもできます。これは、アプリの環境で試行錯誤するのに便利です。

$ heroku run rails console
Running rails console on ⬢ polar-inlet-4930... up, run.1360 (Eco)
Loading production environment (Rails 5.2.3)
irb(main):001:0>

Error connecting to process​ というエラーが表示された場合は、ファイアウォールの設定​が必要な可能性があります。

起動したコンソールには、アプリ全体が読み込まれています。たとえば、puts Cowsay.say("hi","Cow")​ と入力すると「hi」という吹き出しの付いた動物が表示されます。コンソールを終了するには、exit​ と入力します。

irb(main):001:0> puts Cowsay.say("hi", "Cow")
 ____
| hi |
 ----
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/`\
    \___)=(___/
=> nil
irb(main):002:0> exit

dyno の仕組みに慣れるため、別の One-off dyno を作成し、この dyno でシェルを開く bash​ コマンドを実行してみましょう。 シェルが開いたら、そこでコマンドを実行できます。 dyno にはそれぞれ固有の一時的なファイル領域が割り当てられ、アプリとその依存関係がそこに格納されます。コマンド (この場合は bash​) が完了すると、dyno は削除されます。

$ heroku run bash
Running `bash` attached to terminal... up, run.1421
~ $ ls
app  config db   Gemfile.lock  log   public    README.md  tmp
bin  config.ru  Gemfile  lib         Procfile  Rakefile  test   vendor
~ $ exit
exit

必ず exit​ と入力してシェルを閉じ、dyno を終了してください。

​環境設定を定義する

Heroku では、設定を外部に置き、暗号鍵や外部リソースのアドレスなどのデータを環境設定​に保存できます。

環境設定は、ランタイムに環境変数としてアプリケーションに提供されます。 例として、app/views/welcome/index.erb​ を編集し、環境変数 TIMES​ の値に応じてあるアクションを繰り返し実行するメソッドを追加します。 ファイルの最初の数行を次のように変更します。

<% for i in 0..(ENV['TIMES'] ? ENV['TIMES'].to_i : 2) do %>
  <p>Hello World #<%= i %>!</p>
<% end %>

heroku local​ は、ローカルディレクトリにある .env​ ファイルの内容に応じて、環境を自動的に設定します。 プロジェクトのトップレベルディレクトリにはすでに .env​ ファイルがあり、以下の行が含まれています。

TIMES=10

heroku local​ でアプリを実行すると、「Hello World」というテキストが 10 回表示されます。

Heroku で環境設定を設定するには、次のコマンドを実行します。

$ heroku config:set TIMES=10

heroku config​ を使って設定した環境設定を表示します。

$ heroku config
== polar-inlet-4930 Config Vars
PAPERTRAIL_API_TOKEN: erdKhPeeeehIcdfY7ne
TIMES: 10

変更したアプリケーションを Heroku にデプロイして、動作を確認します。

​データベースを使う

add-on marketplace​ には、Redis や MongoDB、Postgres、MySQL など、多数のデータストアが揃っています。 このステップでは、Heroku Postgres Mini アドオンについて学びます。このアドオンは、どの Rails アプリをデプロイした場合も、自動的にプロビジョニングされます。

データベースはアドオンなので、CLI で addons​ コマンドを使うと、アプリにプロビジョニングされたデータベースの詳細についてもう少し確認できます。

$ heroku addons
Add-on                                          Plan       Price  State
──────────────────────────────────────────────  ─────────  ─────  ───────
heroku-postgresql (postgresql-encircled-75487)  eco  eco   created
 └─ as DATABASE
papertrail (papertrail-asymmetrical-81999)      choklad    free   created
 └─ as PAPERTRAIL

The table above shows add-ons and the attachments to the current app (polar-inlet-4930) or other apps.

アプリの環境設定を一覧表示すると、アプリがデータベースに接続するときに使用する URL (DATABASE_URL​) が表示されます。

$ heroku config
=== polar-inlet-4930 Config Vars
DATABASE_URL:                postgres://xx:yyy@host:5432/d8slm9t7b5mjnd
HEROKU_POSTGRESQL_BROWN_URL: postgres://xx:yyy@host:5432/d8slm9t7b5mjnd
...

Heroku には、さらに詳細を表示する pg​ コマンドもあります。

$ heroku pg
=== DATABASE_URL
Plan:                  Mini
Status:                Available
Connections:           0/20
PG Version:            11.5
Created:               2019-09-18 13:22 UTC
Data Size:             8.0 MB
Tables:                3
Rows:                  0/10000 (In compliance) - refreshing
Fork/Follow:           Unsupported
Rollback:              Unsupported
Continuous Protection: Off
Add-on:                postgresql-elliptical-30581

表示内容から、Mini データベースを使っており、実行している Postgres のバージョンは 11.5 で、1 行のデータがあることがわかります。

デプロイしたサンプルアプリにはデータベース機能が備わっています。これにはウィジェット用のコントローラとデータベースモデルがあり、アプリの URL に「/widgets」と追加することでアクセスできます。

実際に URL にアクセスすると、エラーページが表示されます。heroku logs​ または Papertrail でエラーメッセージを確認すると、次のようになっています。

2014-07-08T14:52:37.884178+00:00 app[web.1]: Started GET "/widgets" for 94.174.204.242 at 2014-07-08 14:52:37 +0000
2014-07-08T14:52:38.162312+00:00 heroku[router]: at=info method=GET path="/widgets" host=fox828228.herokuapp.com request_id=3755bb46-4de2-4434-a13a-26ec73e53694 fwd="94.174.204.242" dyno=web.1 connect=0 service=294 status=500 bytes=955
2014-07-08T14:52:38.078295+00:00 app[web.1]: Processing by WidgetsController#index as HTML
....
2014-07-08T14:52:38.146062+00:00 app[web.1]: PG::UndefinedTable: ERROR:  relation "widgets" does not exist

ここでは、データベースへの接続は成功したものの、必要なテーブルが見つからなかったことがわかります。 Rails では、rake db:migrate​ を実行して解決できます。 Heroku でこのコマンドを実行するには、次のように One-off dynoで実行します。

$ heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.3559
Migrating to CreateWidgets (20140707111715)
== 20140707111715 CreateWidgets: migrating ====================================
-- create_table(:widgets)
   -> 0.0244s
== 20140707111715 CreateWidgets: migrated (0.0247s) ===========================

Web プロセスタイプが dyno で実行されるのと同様に、この rake コマンドも dyno で実行されています。 Heroku は新しい dyno を起動し、用意していたアプリを追加して、その環境でコマンドを実行します。その後、dyno は削除されます。 dyno は接続されたアドオンでこの処理を実行するので、理想的な方法と言えます。

ここで、アプリの /widgets​ ページにもう一度アクセスすると、ウィジェットのレコードを一覧表示して、作成できるようになっています。

ローカル環境に Postgres をインストールしている場合は、データベースを直接操作することもできます。 たとえば、次のように psql​ を使ってデータベースに接続し、クエリを実行できます。

$ heroku pg:psql

d8slm9t7b5mjnd=> select * from widgets;
 id |   name    | description  | stock |         created_at         |         updated_at
----+-----------+--------------+-------+----------------------------+----------------------------
  1 | My Widget | It's amazing |   100 | 2014-07-08 15:05:13.330566 | 2014-07-08 15:05:13.330566
(1 row)

詳細は、「Heroku PostgreSQL​」を参照してください。

次のステップ

ここまで、アプリのデプロイ、アプリの設定変更、ログの表示、スケール、アドオンのアタッチを行う方法を説明しました。

次にお勧めするリソースを紹介します。

  • 「Heroku の仕組み​」では、アプリケーションの作成、設定、デプロイ、および実行時に必要な技術的な概念の概要を紹介しています。
  • Ruby サポートカテゴリ​では、Ruby アプリケーションの開発とデプロイに関する詳細を確認できます。
  • 「Heroku スターターガイド (Rails 7.x)​」では、Rails アプリのデプロイについて詳しく説明しています。
  • Heroku の開発者としての体験および CI/CD 機能についての詳細は、「Heroku Enterprise Developer Learning Journey​」を参照してください。

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Podcasts
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

Your email address:

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Heroku Podcasts
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
  • YouTube
Heroku is acompany

 © Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies
  • Cookie Preferences