logo
Published on

pgwebでherokuのpostgreSQLにローカルから接続する

Authors

pgwebでherokuのpostgreSQLにローカルから接続する方法について紹介します。 pgwebはブラウザベースのクロスプラットフォームなpostgreクライアントです。

sosedoff/pgweb: Cross-platform client for PostgreSQL databases

herokuからデータベースの情報を確認

Heroku Data > [データベース詳細ページ] > Settings > View Credentials

または、

Personal apps | Heroku > [アプリ詳細ページ] > Overview > Heroku Postgres > [データベース詳細ページ] > Settings > View Credentials

で、host,db name,username,pw,URI などの情報が取得できます。

ここでコピーしておくべきなのは、各情報とURIです。

Windows

Windowsの場合、Releases · sosedoff/pgwebから、pgweb_windows_amd64.exe.zipをダウンロードして、解凍して出来てたexeを起動するとhttp://localhost:8081/にアクセスしてねと出てくるので、ブラウザからアクセスします。

herokuからコピーしたログイン情報をペーストしてログインしてやると、

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_ab628604-a226-4e5b-88a8-1b585206c562.png

こんな感じでDB viewerやMysql workbenchライクにテーブルの中身を見ることができます。

パスを通せば、pgwebみたいにアクセスできます。 僕はC:/binってフォルダを作ってそこをパス通してそこにpgweb_windows_amd64.exe移してやってます。

Linux同様、--url オプションを使ったアクセスも可能です。

Linux

僕はWSLのubuntu16.04でやりましたが、パッケージ管理システム使ってるわけでもないのでどのディストリビューションでも行けるかと思います。

curl -s https://api.github.com/repos/sosedoff/pgweb/releases/latest \
| grep linux_amd64.zip \
| grep download \
| cut -d '"' -f 4 \
| wget -qi - \
&& unzip pgweb_linux_amd64.zip \
&& rm pgweb_linux_amd64.zip \
&& sudo mv pgweb_linux_amd64 /usr/local/bin/pgweb

これで、先程コピーしたURIをあわせて、

yuis@DESKTOP-FOOBAR:/mnt/c/Users/user/vm$ pgweb --url  postgres://kqwssyvvkvkhka:490...
# postgres://[USERNAME]:[PASSWORD]@[HOST]:[PORT]/[DBNAME]

みたいにしてやれば、データベース情報を入力する手間なく接続できます。

.bashrcに以下のように書いておけば、

alias pgweb_aptnote="pgweb --url postgres://kqwssyvvkvkhka:$(echo $HEROKU_DBPW_APTNOTE)@ec.compute-1.amazonaws.com:5432"

$ pgweb_aptnote だけでログインできますね。

あとがき

Mysql workbenchみたいにインストール面倒じゃなくていいですね。重くもないですし。結構良さげ。