酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

Heroku/Posgresqlでよく使うコマンド一覧

短期間でプロダクトを作ってそのまま運用するのに最適なHeroku。最近サラリーマンになって自由な時間が減ったので、Herokuで時間を節約して開発に集中できる特徴に感動して、最近もっぱらHerokuのエラーと格闘する毎日ですw

ということで、ノウハウを少しずつためていくための備忘録メモをこの記事で書き足していきます。完全に俺得記事なので、もし読みにくかったり、逆にこういう風に書いて欲しいとか有ればお気軽にコメントください^^

(12/28 19:50) heroku app:destroy, app:info, app:join, app:leaveを追加


heroku便利コマンド

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# DBの作り直し => 確認のためにアプリ名を聞かれるので入力してENTER
heroku pg:reset DATABASE
(heroku rake db:migrate:redo STEP=10でも代用可能)

# 最新ログをコマンドラインで監視
heroku logs -t

# Herokuへssh接続
heroku run bash

# Herokuでirbを起動
heroku run console

# ブランチから herokuのmasterへpushする
git push heroku yourbranch:master

# Herokuへの環境変数の変更
heroku config:set TWITTER_KEY=**********

# Herokuの環境変数の確認
heroku config | grep "TWITTER"

# HerokuのConfigをA=B形式で出力 .envとかするのに最適
heroku config --shell
#=> DATABASE_URL= xxx

# Herokuのインスタンス再起動
heroku restart

# Herokuで動いているプロセスのチェック
heroku ps

# Herokuのリリース履歴の確認
heroku releases

# 戻したいバージョンを指定してロールバックをかける  
# <バージョン番号>はheroku releasesで確認
heroku rollback <バージョン番号>

# アプリケーションの完全削除
heroku apps:destroy --app APP

# アプリの詳細情報を表示
heroku apps:info

# herokuアプリへの紐付け
heroku apps:join --app APP

# herokuアプリへのヒモ付け解除
heroku apps:leave --app APP

postgresql必須コマンド

posqgresqlの忘備録。

1
2
3
4
5
6
7
8
9
10
11
# ユーザー作成(dbの作成、削除権限あり superuser)
create user_name -s

# DBの作成
createdb db_name -O user_name

# DBの削除
dropdb db_name

# DBの一覧
psql -l

初デプロイ前にDB(postgresql)を生成する手順

herokuは初デプロイの途中でDBを生成してくれるようです。ですが、ある程度作りこんだソースをPushしようとすると、rake assets:precompileの前にDBが必要な場合があるようです。 ということで、アプリ生成した後にDB(postgresql)を生成する手順です。

まずHeroku標準のPostgresqlのDBを生成。

1
2
3
4
5
6
heroku addons:add heroku-postgresql:dev

# HEROKU_POSTGRESQL_AMBER_URL or HEROKU_POSTGRESQL_REDがあれば成功
heroku config
=== xxx Config Vars
HEROKU_POSTGRESQL_AMBER_URL: postgres://xxx

生成したDBをプライマリーに設定。

1
2
3
4
5
6
heroku pg:promote HEROKU_POSTGRESQL_AMBER_URL

# DATABASE_URLが有れば成功。
heroku config
=== xxx Config Vars
DATABASE_URL: postgres://xxx

片付いてしまえばこんなものかというお話ですが、かなりの時間ハマっていました。。。

Special Thanks

Heroku Postgres | Heroku Dev Center

herokuのデプロイで「TCP/IP connections on port 5432?」エラー(1)

1
2
3
4
5
Running: rake assets:precompile
rake aborted!
could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?

といったようなエラーが出る場合の対策です。

1
heroku labs:enable user-env-compile -a app_name

app_nameには自分のアプリ名を入れてください。

Special Thanks

ruby - Heroku Rails 4 could not connect to server: connection refused - Stack Overflow

HerokuでRubyのプログラム(EventMachineとか)を実行する方法

herokuで、RubyのEventMachine系のプログラムを実行する場合は、Procfileに実行コマンドを記述。app_nameにはわかりやすいアプリ名を記述、program_name.rbには実行対象のプログラム名を記述します。

1
app_name: bundle exec ruby program_name.rb

herokuのgitにPushが完了したら、以下のコマンドを実行するとアプリのプロセスが起動します。

1
heroku scale app_name=1

ノウハウ系リンク

herokuのデータベースをリセット/リストア/再構築する

知っておきたい!Herokuを使う上では当たり前?の16の常識 | mah365

変更来歴

(12/09 08:55) heroku restartheroku psを追加
(12/28 10:10) New Relicの記述をheroku deploy手順に追加 (12/28 19:50) heroku app:destroy, app:info, app:join, app:leaveを追加 (12/29 16:00) heroku config --shellを追加

おすすめの書籍