Heroku Tips (1) Heroku Postgresを参照する

August 16, 2018 Naoki Kitaarashi

 

 

皆さん、こんにちは。アピリオ北嵐です。最近はプロジェクト作業が多忙ですっかりご無沙汰しておりましたが、久々にテックブログを執筆します! 昨年よりエンタープライズのHeroku案件に参画しており、共有できそうな技術的なネタがいくつかありますので、Heroku Tipsとして公開していきたいと思います。

 ご存じのようにHerokuはSalesforce社が提供するPaaSプラットフォームであり、nodejs, java, ruby, php などの様々な言語を使って手軽にサーバーを構築できることが特長です。実際に触ってみると分かりますが、Salesforceと同じように無償で使い始めることができるため、本当に簡単にWebアプリケーションを立ち上げることが可能です。Salesforceの学習でお馴染みのTrailheadでもHerokuのコンテンツは提供されていて、基本的な使い方は手軽に学習することができます。一方、エンタープライズ案件で必要となるより実践的な情報となると、意外と英語の公式マニュアル以外の情報は見つかりません。そこで本ブログでは、Herokuを活用していくのに役立ちそうなTipsをいくつか紹介していきたいと思います。

さて第一回目の今回は 数あるHerokuのアドオンの中でも最も代表的かつ重要でもあるHeroku Postgresに関するTipsです。データベースを使って開発を行う場合、当然データの中身を参照する必要が出てくるものです。皆さんはどうやってHeroku Postgresにアクセスしていますか? 私は下記の4つの方法を環境によって使い分けています。

1. Heroku CLI を使ってコマンド操作で参照する

Herokuの操作に欠かせないツールであるHeroku CLIでは、PostgreSQLのターミナル型フロントエンドであるpsqlをheroku pg:psql  コマンドを使って起動することができます。

heroku pg:psql -a 接続したいherokuアプリの名前

起動には事前にローカルPCにPostgreSQLをインストールしておく必要がありますが、ターミナルから手軽にサーバー上のHerokuにアクセスして、PostgresコマンドやSQLを実行することができます。コマンドプロンプトから手軽にアクセスできるので、慣れるととても便利は方法ですし、レスポンスも良いです。データを参照するだけでなく、下記のような様々なコマンド操作を行うことができます。

- SQL文を使ってデータを更新・挿入・削除する(UPDATE/INSERT/DELETE)
- DDLを実行して、データベースの定義を変更する
- CSVデータのロード/抽出を行う(¥copy)
- テーブルやビューの一覧を参照する(¥d)
- テーブルやビューの定義を参照する(¥d xxx)
- explainを実行して「実行計画」を参照する(explain xxx)


2. クライアントツールを使用する

PgAdminのようなPostgreSQLのクライアントツールを使用して、データベースを参照する方法です。開発環境のPostgresサーバーに外から自由にアクセスできる場合は、GUIツールを使う方法はとても便利なものです。ツールを利用するには接続したいHerokuアプリケーションに紐付いたPostgresの接続情報を取得する必要がありますので、この情報をHeroku Postgresのアドオン画面から入手します。
 

Heroku Postgresのアドオン画面を開きます。

 

 

 

[Settings] - [View Credentials] をクリックします。

接続情報が表示されます。
※ 画面はhobby-devのものです。有償プランでは「Credentials」タブからDB情報を参照して下さい。
 



下記のコマンドを使ってCLIで接続情報を取得することもできます。

heroku pg:credentials:url -a 接続したいherokuアプリの名前


3. サーバーツールを使用する

Heroku上にPhpPgAdminのようなサーバーをセットアップし、データベースを参照する方法です。こちらについては次回詳しく説明します。


4. DataClipsを使用する

DataClipsはHerokuにデフォルトで提供されているユーティリティ機能であり、Heroku Postgresのデータを手軽に参照することができるツールです。DataClipsにはHerokuサイトからアクセスすることができ、使い方はいたって簡単。Herokuサイトにログインして、右上のメニューから「DataClips」を選択して下さい。

DataClipsのメイン画面が表示されたら「Create DataClips」をクリックして下さい。下記の画面が表示されます。

クエリーの情報を入力します。

   Name: 任意のクエリー名

   Choose a database:  自分がアクセス権を持っているHerokuアプリに紐付いたPostgresデータベースを選択

フリースペースに任意のSQL文を記述し「Create DataClip」をクリックすると、クエリーの結果が画面上に表示されます。

 


データベースの接続情報を設定する必要もなくとても簡単です。クエリーは保存されるので繰り返し使用することができますし、保存されたクエリーは同じ組織のユーザーと共有されます。画面上で結果を参照するだけでなく、データを様々な形式(CSV、JSON、Excel)でダウンロードしたり、Googleドライブに保管することもできます。

 

この中で一番手軽かつ使い易い方法は1また2でしょう。1のコマンド操作では、Heroku CLIがセットアップ済みであれば簡単にコマンドを実行してDBにアクセスできます。2はGUIツールをPCに導入する手間はありますが、やはりGUIでデータベースにアクセスするのは楽な方法でしょう。では、3や4の方法はいつ使うのかと言えば、例えば、Private Space上に作成したアプリの場合、デフォルトではHeroku Postgresに外部から接続することができません(*1)、また社内ネットワークから自由にインターネットに繋げない環境も金融系ではまだまだ多いものです。このような環境では1や2の方法は使用することはできません。こうした時に役立つのが3や4の方法になります。

次回は、PhpPgAdminをherokuアプリとして導入する手順についてご紹介したいと思います。

*1 Caseを上げることで、特定のIPからアクセスすることが可能です

著者について

某大手SIベンダーを退職し2015年3月からアピリオの一員としてクラウドの世界に身を投じているシニアエンジニアです。Salesforceを極めようと精進していたら、いつの間にかエンタープライズのHerokuアプリ開発で再びJavaの世界に戻って来ている最近です。クラウドという広大な技術の波に翻弄されつつも、やはりクラウドは最高に面白いなと感じている毎日です。

Naoki Kitaarashi のコンテンツをもっと見る
戻る
コミットするワーカーが素晴らしいカスタマー・エクスペリエンスをデリバリーする
コミットするワーカーが素晴らしいカスタマー・エクスペリエンスをデリバリーする

アピリオはカスタマー・エクスペリエンスの向上に注力しています。私たちはとても真摯に仕事に向き合っており、私たちの開発チームと直接お会いいただくためにお客様をデリバリーセンターにお迎えする時にも全力で取り組んでいます...

次へ
Heroku Tips (2) phpPgAdminでサーバーからPostgresを参照
Heroku Tips (2) phpPgAdminでサーバーからPostgresを参照

Salesforce の Heroku Postgresを参照するいくつかの方法について紹介します。

アピリオまでお気軽にお問合せください

ご質問はこちら