hiyoko-programingの日記

プログラミングを勉強したてのひよっ子。   エンジニア目指して勉強中。

rails db:create できない

◉恐怖の

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