Tech

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で使用していたんですが、これでようやくスタートライン…はまった。