(※完全自分用メモ)
ユーザー
- postgres (権限ある)
- my_user (権限ない)
という状態で、ユーザーが「my_user」のdbを作成したいだけです。
結論としては。
sudo su postgres
psql -c "create database db_name owner my_user"
という感じでできました。
createdb -U my_user -h localhost -d db_name
とかで行けなくて、しばらくさまよいました。
権限をしらべる
select rolname, rolcreatedb from pg_roles;
rolname | rolcreatedb
---------------+---------------
postgres | t
my_user | f
これがf
ということは、createできないんだろうなぁ。
追記
毎回sudo su
とか面倒くさいの、権限を変えちゃいました。
sudo su postgres
psql -c "alter role my_user CREATEDB"
これで、my_userでcreatedbができるので、rake db:test:clone
とか、やりたかったことができる。
追記終わり。