はじめに
herokuが提供するPostgreSQLのDBにローカルPCから遠隔ログインし、データを取得・編集できる方法をまとめました。
当方の環境はMac(Mountain Lion)ですが、Windows/Linuxでも同じはずです。
主に、コマンドライン(psql)でアクセスする方法と、GUIのDBクライアントを使う方法があります。
psqlを使う方法
heroku toolbeltがインストールされていることを前提とする。
以下のコマンドを実行する。
$ heroku pg:psql
これで、psqlでheorkuのPostgreSQL DBにアクセスすることができます。
GUI DBクライアントを使う方法
ここでは、NetBeansのDBクライアント機能を利用することを前提とする。
(2013/09/27追記:NetBeansよりもお薦めの「pgAdmin」というGUIクライアントを発見した。本記事末尾に紹介したので参考にされたい。HerokuのPostgreSQL DBへのアクセスの仕方は、NetBeansと変わらないはずである。)
まず、herokuの公式Webサイトに自分のアカウントでログインする。そして、DBにアクセスしたいアプリケーション名をクリックする。(プライバシーのため、以下の図はアプリ名にモザイクがかかってます)
「Resources」タブが選択されていることを確認し、「Add-ons」の「Heroku Postgres ****」(****は使っているプランによって変わります)をクリックする。
以下のページが表示されるので、herokuのアカウントでログインする。
ログインすると、データベースのリストが表示されるので、見たいアプリのデータベース名をクリックする。
次に、「Connection Settings」の右にある歯車アイコンをクリックしてメニューを表示し、「JDBC URL」を選択する。
表示されたページで、JDBC URLをコピーして保存しておく。
NetBeansをインストールする(ここではバージョン7.3.1を想定)。
「サービス」タブ→「ドライバ」→「PostgreSQL」の右クリックでコンテキストメニューを表示し、「接続」をクリックする。以下のページが参考になる。
http://ubuntu-note.blog.so-net.ne.jp/2010-12-31(Ubuntu & Emacs & etc. メモ さんより)
ただ、上記のページで説明しているNetBeansはバージョンが古く、接続設定画面のUIが異なる。バージョン7.3.1では以下のような画面になる。herokupostgresのページで控えたJDBC URLの情報を元に、項目を埋めていく。ホスト、ポート、データーベース、ユーザー名、パスワードの項目を埋めたら、最後にJDBC URLの欄の末尾に?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
という文字列を追加する。
(参考:devcenter.heroku.com)
そして、「接続をテスト」ボタンを押せば、「接続に成功しました。」と出るはずである。
接続に成功したら、各テーブルのデータを参照したり編集したり、色々できる。
NetBeansの問題点
Mac版のみの問題なのか、他のプラットフォーム版でも起きるのか確認していないが、NetBeansのDB機能だと、データを表示するタブが、開いてもしばらく経つと勝手に閉じてしまうという不具合(?)を確認した。
2013/09/27追記:NetBeansよりもオススメのGUIクライアント「pgAdmin」
上記の不具合があるNetBeansよりもオススメのGUIクライアントを発見した。「pgAdmin」である。無料。
UIが若干使いづらいが、PostgreSQL専用ということで、相性は良さそうだ。
ちなみに日本語UIは訳がところどころ不自然なので、環境設定で英語UIに変更することをお勧めする。
HerokuのPostgreSQL DBへのアクセスの仕方は、NetBeansと変わらないはずである。