開発中のアプリを軽く検証するため、ローカルMacでPostgreSQL環境を立ち上げた。
前提
Homebrewがインストールされていること。

PostgreSQLのインストール
まずはsearch。
% brew search postgresql
==> Formulae
postgresql postgresql@10 postgresql@11 postgresql@9.4 postgresql@9.5 postgresql@9.6
Auroraで使うバージョンに合わせて、@11をインストール。
% brew install postgresql@11
どうでもいい情報が流れてゆく合間に、けっこう重要な情報もドンブラコと流れてくる。見過ごさずに拾っておく。
To migrate existing data from a previous major version of PostgreSQL run:
brew postgresql-upgrade-database
This formula has created a default database cluster with:
initdb --locale=C -E UTF-8 /usr/local/var/postgres
For more details, read:
https://www.postgresql.org/docs/11/app-initdb.html
postgresql@11 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have postgresql@11 first in your PATH run:
echo 'export PATH="/usr/local/opt/postgresql@11/bin:$PATH"' >> ~/.zshrc
For compilers to find postgresql@11 you may need to set:
export LDFLAGS="-L/usr/local/opt/postgresql@11/lib"
export CPPFLAGS="-I/usr/local/opt/postgresql@11/include"
To have launchd start postgresql@11 now and restart at login:
brew services start postgresql@11
Or, if you don't want/need a background service you can just run:
pg_ctl -D /usr/local/var/postgresql@11 start
PostgreSQLサーバの設定
常時起動するようにサービス登録
先程のドンブラコ情報に従って、PostgreSQLサーバをサービスとして登録する。
Mac起動時に自動的にサーバプロセスを起動してくれるようになる。
% brew services start postgresql@11
==> Successfully started `postgresql@11` (label: homebrew.mxcl.postgresql@11)
PostgreSQLクライアントの設定
psqlにPATHを通す
これもドンブラコのアドバイスに従って実施。psqlコマンドはあまり使わないからPATHを通さなくてもよいかもしれないが、もし使いたくなった時に探すのも面倒なのでやっておく。環境によってzshではないので注意。
% echo 'export PATH="/usr/local/opt/postgresql@11/bin:$PATH"' >> ~/.zshrc
psqlコマンドが認識されるようになったことを確認する。
% source ~/.zshrc
% which psql
/usr/local/opt/postgresql@11/bin/psql
postgresロールの作成
psqlからサーバに繋いでみる。
% psql postgres
psql (11.9)
Type "help" for help.
postgres=#
適当な名前で(今回は「postgres」で)ユーザを作成する。
postgres=# create user postgres SUPERUSER;
CREATE ROLE
ここまでの作業で、psqlコマンド以外からも作成したユーザでパスワードなしでログインできるようになっている。あとは好きなツールでデータベースやスキーマなど作成すればよい。
〜〜〜〜〜〜 完 〜〜〜〜〜〜
余談
DBやスキーマの作成をpsqlで行う
作成したユーザに切り替える
psqlコマンドが起動中であれば、先ほど作成したユーザに切り替える。
postgres=# \c - postgres
You are now connected to database "postgres" as user "postgres".
もしpsqlを閉じてしまっている場合は、先ほど作成したユーザでpsqlに入り直す。
% psql -U postgres postgres
データベース作成
データベース一覧を表示する。
postgres=# \l
適当な名前でデータベースを作成する。
postgres=# create database test_db;
CREATE DATABASE
作成したデータベースに切り替える。
postgres=# \c test_db
You are now connected to database "test_db" as user "postgres".
スキーマ作成
スキーマを作成する。
test_db=# create schema test_schema;
CREATE SCHEMA
カレントスキーマの切り替え
カレントスキーマの確認
test_db=# SELECT current_schema();
current_schema
----------------
public
(1 row)
test_db=# show search_path;
search_path
-----------------
"$user", public
(1 row)
カレントスキーマの切り替え
test_db=# SET search_path to test_schema;
SET
test_db=# SELECT current_schema();
current_schema
----------------
test_schema
(1 row)
test_db=# show search_path;
search_path
-------------
test_schema
(1 row)
psqlの終了
postgres=# \q
%
PostgreSQLのサービスを制御する
サービス一覧
サービスの状況を確認する時はlist。
% brew services list
Name Status User Plist
postgresql@11 started usr1 /Users/usr1/Library/LaunchAgents/homebrew.mxcl.postgresql@11.plist
サービス停止
サービスを止めたくなった場合はstopする。
% brew services stop postgresql@11
サービス停止後の表示について注意点
一度サービスに登録すると、stop後もlistに表示が残ってしまう。
% brew services list
Name Status User Plist
postgresql@11 stopped
なんだか気持ち悪いが、これを消すには一度PostgreSQLをアンインストールするしか無いようだ。

PostgreSQLのアンインストール
% brew uninstall postgresql@11
以上
【参考ページ】


