初歩中の初歩で引っかかったのでメモ。
意外とこんなところで引っかかる人もいるのかも…ということで。
※ローカル環境はWindows8.1を使ってます。
HerokuのアプリにHeroku Postgresを導入し、いざheroku pg:psql -a [appname]
を打ったところ、こんなメッセージが。
$ heroku pg:psql -a [herokuのアプリ名]
--> Connecting to postgresql-adjacent-61496
! The local psql command could not be located. For help installing psql, see https://devcenter.heroku.com/articles/heroku-postgresql#local-setup
PostgreSQLをローカルにインストール
CLIで実行するにあたって、ローカルにPostgreSQLがインストールされている必要があるので、インストールします。Heroku上のバージョンとローカルのバージョンを合わせる必要があるらしいので、まずは確認。
$ heroku pg -a [herokuのアプリ名]
=== DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 0/20
PG Version: 11.6
Created: 2020-02-01 02:31 UTC
Data Size: 7.9 MB
Tables: 1
Rows: 2/10000 (In compliance)
Fork/Follow: Unsupported
Rollback: Unsupported
Continuous Protection: Off
Add-on: postgresql-adjacent-61496
11.6だったので、postgresqlのダウンロードページから、同じバージョンをダウンロードしてインストールします。
よし、というわけでもう一度打ってみましょう。
$ heroku pg:psql -a [herokuのアプリ名]
--> Connecting to postgresql-adjacent-61496
! The local psql command could not be located. For help installing psql, see https://devcenter.heroku.com/articles/heroku-postgresql#local-setup
……は?
Pathを設定する
なんでやねんと思いつつ、提示されているURLをチェックしてみたら、こんな記載がありました。(Windows Set Upのところを参照しましょう)Remember to update your PATH environment variable to add the
bin
directory of your Postgres installation. The directory will be similar to this:C:\Program Files\PostgreSQL\<VERSION>\bin
. If you forget to update your PATH, commands likeheroku pg:psql
won’t work.
引用元:https://devcenter.heroku.com/articles/heroku-postgresql#set-up-postgres-on-windows
「ちゃんとPathを通さないとコマンド機能しないから忘れんなよ。」ってことみたいです。というわけで、Pathを設定しましょう。
「コントロールパネル」
>「システムとセキュリティ」
>「システム」
>「システムの詳細設定」
>「詳細設定」のタブから「環境変数(N)」を選択
ポップアップウインドウが表示されるので、「システム環境変数」から"Path"を探します。そこで「編集」を選択し、binファイルの置かれているパス(今回であればC:\Program Files\PostgreSQL\11\bin
)をコピペします。
ちなみに入力されているデータを消さないように、先頭に区切り文字の;
を付与してペーストします。私は何も知らずにそのまま上書きしてしまい、ひどい目に遭いました。Windows10ではそのような心配は無いようですが、Windoqs8.1の方はくれぐれも注意です。
そして改めて実行すると…。今度はちゃんと通ったようです。
$ heroku pg:psql -a [herokuのアプリ名]
--> Connecting to postgresql-adjacent-61496
psql (11.6)
SSL 接続 (プロトコル: TLSv1.2、暗号化方式: ECDHE-RSA-AES256-GCM-SHA384、ビット長: 256、圧縮: オフ)
"help" でヘルプを表示します。
herokuのアプリ名::DATABASE=>