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 の標準データベースはPostgreSQL。 Rails 側で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