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コマンドラインツールをインストール。
コマンドラインツール
確認
$ which heroku
/usr/bin/heroku
Herokuコマンドが使えるようにログインの登録をします。
heroku login
サインアップ時のemailとpasswordを聞かれますので登録したらHerokuコマンドの準備が終了です。
Herokuログイン画面からコンソールにログインしてアプリケーションを作成します。
また、適当なrailsアプリケーションなどを準備します。
アプリケーションディレクトリにて、gitの設定をします。
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 を選択します。
アプリケーションをコマンドから操作できるようにします。
heroku git:remote -a アプリケーション名
以上で準備が完了です。
サーバー上のDBを操作する
heroku pg:psql
問題無ければ下記のように表示され、sqlコマンドが叩けるようになっていると思います。
アプリケーション名::DB名->
サーバー上でマイグレートする
heroku run rake db:migrate
ただマイグレートしただけではデータが反映されませんので、下記コマンドでリスタートさせる必要があります。
heroku restart
データベースのバックアップを取る
heroku pg:backups capture
古い情報だと下記コマンドになっていますが、現在は上記コマンドが正となります。
heroku pgbackups:capture
成功すると、下記のようなログが表示されます。
DATABASE_URL ---backup---> b003
レストアは下記コマンドです。
heroku pg:backups restore b003 DATABASE_URL
Herokuの公式リファレンスにもう少し詳しい情報が掲載されておりますのでご覧ください。
Herokuは東京リージョンがまだ無いようですが、もし出来れば更によいサービスになりますね。