8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Nodejs から Heroku postgresへ接続してみました

Posted at

目的

NodejsからHeroku postgresに接続する

手順

  1. Heroku postgresが追加されているか確認する

    コマンドプロンプトから、heroku configを実行する
  2. Heroku postgresが追加されてなければ、追加する

    heroku addons:create heroku-postgresql
  3. クライアントにpostgres(pgAdmin)をインストールする
  4. pgAdminで接続テストしてみる
  5. NodejsにDBアクセス用のプログラムを作成する
  6. 問題なく接続できたことを確認

接続時のエラー

Heroku postgresは、ssh接続が必須なのでheroku configで記載されている接続情報で接続しようとするとエラーになります
接続エラーのメッセージ:
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }

接続エラー時のプログラムエラー:
var query = client.query('SELECT Name FROM "TestUser"');
^
TypeError: Cannot call method 'query' of null

解決方法:
var conString = process.env.DATABASE_URL || "postgres://[ユーザ名]:[パスワード]@[ホスト名]:[ポート]/[DBメンテナンス]
の後に
?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
を追記する

感想

コマンドを実行するだけで簡単にpostgresとの連携ができました
また、Heroku postgresの無料版を選択するとマルチテナントなので、別ユーザのスキーマが見れるのは新鮮でした

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?