dev/mom0tomo

技術メモ

RailsのアプリケーションをHerokuで動かす

たまにしか一連の流れをやらないので、いつも何かを忘れてしまう。 まとめておく。

コマンドラインツールのインストール

$ wget https://cli-assets.heroku.com/heroku-cli/channels/stable/heroku-cli-linux-x64.tar.gz -O heroku.tar.gz
$ sudo mkdir -p /usr/local/lib/heroku
$ sudo tar --strip-components 1 -zxvf heroku.tar.gz -C /usr/local/lib/heroku
$ sudo ln -s /usr/local/lib/heroku/bin/heroku /usr/local/bin/heroku


ターミナル上でHerokuにログイン

$ heroku login

Enter your Heroku credentials.
Email: { mail_address }
Password: { pass }


Heroku アプリを作成

$ heroku create { app_name }

// 作成されたことを確認
$ heroku apps
{ app_name }

// リモートにあることを確認
$ git remote -v
heroku  https://git.heroku.com/app_name.git (fetch)
heroku  https://git.heroku.com/app_name.git (push)
origin  https://github.com/mom0tomo/app_namegit (fetch)
origin  https://github.com/mom0tomo/app_name.git (push)


DBの設定

Heroku の標準データベースはPostgreSQLRails 側でPostgreSQLを使用するために設定をする。

Gemfile

group :production do
  gem 'pg', '0.21.0'
end

--without productionを指定してbundle installする。

$ bundle install --without production

config/database.yml

production:
  adapter: postgresql
  encoding: unicode
  pool: 5
  database: { app_name }_production
  username:  { app_name }
  password: <%= ENV['APP-NAME_DATABASE_PASSWORD'] %>


Herokuにpush

$ git push heroku master


マイグレーション

$ heroku run rails db:migrate



【オプション】PostgreSQL アドオンの追加

下記のようなエラーが出る場合がある。

PG::ConnectionBad: could not connect to server: No such file or directory
       Is the server running locally and accepting
       connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Heroku 上でPostgreSQL がインストールされていないせいで起きるエラー。

デプロイ時に config/database.yml がちゃんと設定されていないと、自動的に PostgreSQL がインストールされないので、手動でインストールする。

$ heroku addons:create heroku-postgresql:hobby-dev