Heroku Postgresをローカル環境から手動で操作する方法について

1,はじめに

皆さんは、PaaSとして有名なHerokuをご存じだろうか?

Herokuには、SQLサーバーが用意されている。

それは、PostgreSQL をチューニングしたHeroku Postgresというアドオンである。

DBを使用する際に、やはり直接SQLを手動で実行したい場合がある。

そこで、本稿ではHeroku PostgresのDBを手動で変更する方法について記載する。

2,Heroku Postgresへのアクセス方法

(1)前提条件

Heroku CLIを用いてDBにアクセスを行う。

筆者の環境は下記の通りである。

R:\>heroku --version
heroku/7.19.4 win32-x86 node-v11.3.0

(2)手順

DBへのアクセスは、①DB接続情報の取得、②接続の2ステップにより行う。

(ア)DB接続情報の取得

下記のようにコマンドを実行し、DBへの接続情報を取得する。

R:\>heroku pg:credentials:url --app [APP-NAME]
Connection information for default credential.
Connection info string:
   "dbname=HOGEHOGE host=FUGAFUGA.amazonaws.com port=5432 user=XXXX password=XXXX sslmode=require"
Connection URL:
   postgres://USER-NAME:PASS@HOST:5432/DBNAME

以上のように、接続情報を確認したら、実際に接続を行う。

(イ)DBへ接続、その前に

DBへ接続するにあたり、 PostgreSQL がローカル環境にインストールされていることが必要である。

この時点で、PostgreSQL をインストールしていなかった場合は、Herokuのサイトの記載に従い、ver 10あたりをインストールするとよい。

もちろん筆者はPostgreSQLをインストールし忘れていたため、下記の通り言われた。

R:\>heroku pg:psql -a [APP-NAME]
--> Connecting to postgresql-rugged-XXXXX
 !    The local psql command could not be located. For help installing psql, see
 !    https://devcenter.heroku.com/articles/heroku-postgresql#local-setup

(ウ)DBへ接続

DBへの接続は下記の通り行う。

R:\>heroku pg:psql -a [APP-NAME]

この際、アプリ名の指定を忘れると下記の通り言われる。

R:\>heroku pg:psql
 »   Error: Missing required flag:
 »     -a, --app APP  app to run command against
 »   See more help with --help

正常に接続ができると、下記のようになる。

R:\>heroku pg:psql -a [APP-NAME]
--> Connecting to postgresql-XXXXXX-XXXXXX
psql (10.6)
SSL 接続 (プロトコル: TLSv1.2、暗号化方式: ECDHE-RSA-AES256-GCM-SHA384、ビット長: 256、圧縮: オフ)
"help" でヘルプを表示します。

[APP-NAME]::DATABASE=>

Web上の管理画面でも接続されたことを確認できる。

heroku postgre connection success
heroku postgres connection success

3,おわりに

クラウドなのに、クラウドなのになんでDBを操作するために、ローカル環境にDBをインストールしないといけないのじゃぁぁぁ

辛さのあまり、Tweetの内容がおかしくなっているのはやさしく見ておいてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA