Posted at

Herokuメモ

More than 3 years have passed since last update.


はじめに

今まではAWSや専用サーバーなどでデプロイをしていて、初めてHerokuを使ってみたのでメモをとっておく。


デプロイ

デプロイはHerokuのページに書かれている通り。

アプリ名Deploy

の順番に辿っていけばやり方が書かれている。

// Herokuにログイン

$ heroku login

// プロジェクトが無い場合は作成する。
$ cd my-project/
$ git init

// すでにプロジェクトがある場合はこれだけでOK
$ heroku git:remote -a APP_NAME

// あとはgitと同じだが、プッシュと同時にデプロイされる。
$ git add .
$ git commit -am "make it better"
$ git push heroku master

素晴らしい!

これだけでデプロイが完了する。


Rakeタスク

デプロイ後はDBが無いためエラーで落ちてしまう。

なので、Rakeタスクを流す必要がある。

heroku run

このコマンドを使えばRakeコマンドが使えるようになる。

具体的には以下のようにコマンドを実行することができる。

heroku run rake db:migrate

heroku run rake db:seed

これで基本的なアプリなら起動するはずだ。


DB再作成

PostgreSQLはMySQLとは違い接続がある時にDBを削除できない。(MySQLはできる。)

なので、HerokuでDBを作り直す時は以下のコマンドを実行する。

heroku pg:reset DATABASE

もしくは

heroku rake db:migrate:redo STEP=10

でも可能だが、downできない状況の場合は使えない。

本番環境でこのような事をすることは無いと思うが、開発時点ではそれなりに使うことがあるだろう、


Herokuの再起動

heroku restartで再起動される。

ロールバックは

heroku releasesでバージョン確認後にheroku rollback <バージョン番号>を実行する。

バージョン情報に日付などもあるのでわかりやすい。


アプリの情報

heroku apps:infoで確認できる。


SSH接続

heroku run bashで接続が可能。


irb起動

heroku run consoleで起動する。

SSH接続よりも使う機会が多い気がする。


Herokuへ環境設定追加

heroku config:set KEY=**********

これで管理している情報は以下のコマンドで見れる。

heroku config

見ると変えてはいけない項目もあったりするので注意。

(heroku config --shellを使えば.envで使える形式で出力される。)


アプリ削除

heroku apps:destroy --app APPでアプリ削除らしい。

実行したことが無い。


無料枠

クレジットカードの登録をすれば1000 dyno hoursでしない場合は550 dyno hoursになります。

無料枠は30分アクセスが無いとsleepされる。(再びアクセスすれば起動する。)

変わりにクレジットカードを登録していない場合は550時間/月しか稼働ができないので途中でアクセスができなくなりそう。

※2016/6/3より上記が適用されたらしい。随時改定されるみたいなので注意。


おまけ


ステージングの作成

やったことは無いけどheroku fork -a APPNAME APPNAME-stgでコピーされるらしい。

DBの内容もコピーされるのでとても良い。


PostgreSQL

普段MySQLばかり使っていたので、基本的なコマンドがわからない・・・。

\l                  データベースの一覧

\d テーブル一覧
\d テーブル名 テーブルの項目(フィールド)確認
\i sqlファイル名 SQL(スクリプト)ファイルの実行
\q psqll切断

とりあえず最小限。