Herokuのデータベース操作

またまた現在セブに来ておりまして、会社内からはすでにあっちの人扱いになっている前田です。

現在自社で作っているアプリケーションは、Herokuを使用しております。
Herokuをご存知でない方もいらっしゃられるかもしれませんが、gitコマンドだけで簡単にWebサービスをデプロイできるサービスです。
Webサービスをデプロイする為にはおおまかに以下の工程が必要です。

1 インターネットからアクセス可能なサーバを準備
2 HTTPサーバをインストール
3 データベースをインストール
4 アプリケーションを準備

Herokuは上記工程の1~3までを簡単に準備できるサービスです。
開発者は自分のアプリをどのように作るかだけに専念できるということですね。
スタートアップで早くサービスをリリースしたい場合などにもってこいです。
私もインフラを勉強中ですがとても難しく、すぐにマスターできるという分野ではない為、Herokuのようなサービスは大変有難い存在です。

Herokuの情報はたくさんインターネット上にありますが、HerokuコマンドでHerokuサーバ上のPostgreSQLの操作方法などを備忘録がてら書いていきます。

開発機はmac、アプリケーションはRuby on Railsで構築します。

Herokuの準備

アカウントがまだの場合はアカウントをこちらから作ります。

Herokuコマンドラインツールをインストール。
コマンドラインツール

確認

1
2
$ which heroku
/usr/bin/heroku

Herokuコマンドが使えるようにログインの登録をします。

1
heroku login

サインアップ時のemailとpasswordを聞かれますので登録したらHerokuコマンドの準備が終了です。

Herokuログイン画面からコンソールにログインしてアプリケーションを作成します。
また、適当なrailsアプリケーションなどを準備します。

アプリケーションディレクトリにて、gitの設定をします。

1
2
3
4
5
6
7
git init
git add .
git commit -m 'first commit'
git remote add heroku https://git.heroku.com/アプリケーション名.git

// デプロイ
git push heroku master

コンソールにてデータベースの準備。

アプリを選択 → Resources → Add-onsのlearn more about add-onsをクリック
下記の Heroku Postgres を選択します。

アプリケーションをコマンドから操作できるようにします。

1
heroku git:remote -a アプリケーション名

以上で準備が完了です。

サーバー上のDBを操作する

1
heroku pg:psql

問題無ければ下記のように表示され、sqlコマンドが叩けるようになっていると思います。

1
アプリケーション名::DB名->

サーバー上でマイグレートする

1
heroku run rake db:migrate

ただマイグレートしただけではデータが反映されませんので、下記コマンドでリスタートさせる必要があります。

1
heroku restart

データベースのバックアップを取る

1
heroku pg:backups capture

古い情報だと下記コマンドになっていますが、現在は上記コマンドが正となります。

1
heroku pgbackups:capture

成功すると、下記のようなログが表示されます。

1
DATABASE_URL ---backup---> b003

レストアは下記コマンドです。

1
heroku pg:backups restore b003 DATABASE_URL

Herokuの公式リファレンスにもう少し詳しい情報が掲載されておりますのでご覧ください。

Herokuは東京リージョンがまだ無いようですが、もし出来れば更によいサービスになりますね。

このエントリーをはてなブックマークに追加