Help us understand the problem. What is going on with this article?

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切断

とりあえず最小限。

syou007
RailsやSwiftを使って、様々なアプリケーションを作ることが好きです。 それを生業にして仕事を請けてます。 HPより仕事の依頼も受けてますので、お気軽にご連絡ください。(条件によっては常駐開発も請け負います。)
http://townsoft.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away