◉恐怖の
PG::InsufficientPrivilege: ERROR: permission denied to create database
色々調べてもなかなか解消できなかったが、
結果的にいけた方法。
config/database.ymlで定義しているユーザがPostgreSQL上でデータベース作成権限を持っていないため、上記のエラーがでる。
まずは、状況確認。
rails_userというのがconfig/database.ymlで定義しているユーザとする。
% sudo su postgres
% psql
# \du
List of roles
Role name | Attributes | Member of
---------------+------------------------------------------------+-----------
rails_user | | {}
hogehoge | Superuser, Create role, Create DB, Replication | {}
postgres | Superuser, Create role, Create DB, Replication | {}
「Create DB」という権限がないことがわかる。
なので、権限をつける。
# ALTER ROLE rails_user WITH CREATEDB;
# \du
List of roles
Role name | Attributes | Member of
---------------+------------------------------------------------+-----------
rails_user | Create DB | {}
hogehoge | Superuser, Create role, Create DB, Replication | {}
postgres | Superuser, Create role, Create DB, Replication | {}
参考:http://next49.hatenadiary.jp/entry/20141105/p2