LoginSignup
7
3

More than 5 years have passed since last update.

herokuでRails5のアプリをdeployする

Posted at

About

herokuの公式ページそのまんまの情報です。せっかくなので作業メモとして投下。

準備編

$ brew install heroku

基本編

# ログインする
$ heroku login

# 環境変数を確認する
$ heroku config

# 環境変数を登録する
$ heroku config:set HOGE=fuga

# 環境変数を取得する
$ heroku config:get HOGE

# 環境変数を登録解除する
$ heroku config:unset HOGE

# addonを導入する
$ heroku addons:add heroku-postgresql

Rails5.X

Railsアプリを作る

$ be rails new myapp -d postgresql
$ cd myapp
$ be rails g controller welcome
$ vim app/views/welcome/index.html.erb
<h2>Hello World</h2>
<p>
  The time is now: <%= Time.now %>
</p>
$ vim config/routes/rb
Rails.application.routes.draw do
  root 'welcome#index'
end
$ be rails db:create

ここまで来ればrails s してローカル上でアプリが見られる

herokuにdeploy

$ git init
$ git add .
$ git commit -m "init"
# appを作成する
$ heroku create
$ git config --list | grep heroku

# pushしてアプリがdeployされる
$ git push heroku master

# deployしたアプリを確認する(この時点ではエラー
$ heroku apps:info

# dbをmigrate
# ログインしてrails db:migrateを叩く
$ heroku run rails db:migrate

# ブラウザで開く
$ heroku open

# アプリの状況を確認する
$ heroku ps

# ログを確認する
$ heroku logs
$ heroku logs --tail

番外編

# pumaを利用する
$ vi Procfile
web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development}

backup編

こちらと同じもの https://devcenter.heroku.com/articles/heroku-postgres-backups

DBのbackup

# backupを取得する
$ heroku pg:backups:capture --app <appname>

# backupの状況を確認する
$ heroku pg:backups:info

# backupを辞める
$ heroku pg:backups:cancel

backupの数はplanで決まっているので注意

スケジュールでのbackup

# スケジュールを確認する
$ heroku pg:backups:schedules --app <appname>

# スケジュールを登録する
$ heroku pg:backups:schedule DATABASE_URL --at '02:00 Asia/Tokyo' --app <appname>

# スケジュールを解除する
$ heroku pg:backups:unschedule --app <appname>

backupにアクセスする

# backupが保存してあるpublicなendpointを取得する(60minutesで使えなくなる
$ heroku pg:backups:url --app <appname>

# donwloadする
$ heroku pg:backups:download
# currentにdumpファイルが出来ている

backup情報を確認する

# 概要を取得
$ heroku pg:backups
=== Backups
ID    Created at                 Status                               Size    Database
────  ─────────────────────────  ───────────────────────────────────  ──────  ────────
b001  2017-01-30 05:44:27 +0000  Completed 2017-01-30 05:44:29 +0000  5.36kB  DATABASE

=== Restores
No restores found. Use heroku pg:backups:restore to restore a backup

=== Copies
No copies found. Use heroku pg:copy to copy a database to another

# backupの詳細情報を取得
$ heroku pg:backups:info b001
=== Backup b001
Database:         DATABASE
Started at:       2017-01-30 05:44:28 +0000
Finished at:      2017-01-30 05:44:29 +0000
Status:           Completed
Type:             Manual
Original DB Size: 7.30MB
Backup Size:      5.36kB (100% compression)

backupをrestore/deleteする

$ heroku pg:backups:restore b001 DATABASE_URL --app <appname>
# appnameのタイプを求められる

# 他のアプリのバックアップを利用する
$ heroku pg:backups:restore <appname>:b001 DATABASE_URL --app <appname>-staging
$ heroku pg:backups:restore 'https://hogehoge/me/items/mydb/dump' DB_URL -a <appname>

# DBのバックアップを削除する
$ heroku pg:backups:delete b001 --app <appname>

# DBをコピーする
$ heroku pg:copy COBALT GREEN --app <appname>
# COBALT -> GREENにコピー

sqlを直接叩く

$ heroku pg:psql -c "select * from users"
7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3