docker上のpostgresqlにユーザを作成

概要

ただハマっただけの記録です。
仕事用のPCで仕事用の開発環境が入っているんですが、postgresqlはdockerで動いておりlocalhostが使われているので、そのdocker上に別ユーザで別データベースを作ろうとしたときにdockerがわからなかったためハマった記録です。

dockerのコンソールに入る

$ docker exec -ti CONTAINER_NAME bash

ユーザを作成

u postgres # postgresユーザで操作する
$ whoami
postgres
$ psql -U postgres
(postgresql console)
postgres=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {}
postgres=# \q # 一回出る
$ createdb NAME -P # パスワード付き
Enter password for new role:
Enter it again:
$ psql -U postgres
postgres=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {}
 NAME      |                                                | {}

DB作成の権限を付与する

postgres=# ALTER ROLE NAME CREATEDB;
ALTER ROLE
postgres=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {}
 NAME      | Create DB                                      | {}

railsで使用していたんですが、これでようやくスタートライン…はまった。