我尝试为我的rails项目设置一个postgres数据库,但是每次我运行命令时:
rake db:create
我收到错误
FATAL: role "myrole" does not existCouldn't create database for{"adapter"=>"postgresql", "encoding"=>"unicode", "pool"=>5,
"database"=>"web_db", "username"=>"myrole", "password"=>"password", "host"=>"localhost"} rake aborted!
当我使用用户myrole登录到我的web_db数据库并键入\ du时,它将显示所有角色,包括myrole!该角色还具有超级用户,create Role和createDB属性。
我不知道怎么了。
编辑我的数据库。yml
development:
adapter: postgresql
encoding: unicode
database: myapp_development
pool: 5
username: myrole
password: password
host: localhost
test:
adapter: postgresql
encoding: unicode
database: myapp_test
pool: 5
username: myrole
password: password
host: localhost
答案 0 :(得分:2)
我做错了什么:
我用su postgres打开psql并创建角色。
我要做的是使用以下命令从用户登录:
psql -h localhost -d web_db -U postgres or sudo -u postgres psql
然后我必须创建一个角色并分配权限:
CREATE ROLE myrole;
ALTER ROLE myrole WITH login;
ALTER ROLE myrole WITH CREATEDB;
ALTER ROLE myrole WITH PASSWORD 'password';
然后我可以运行命令:rake db:setup