无法运行"rake db:create"



我尝试为我的rails项目设置一个postgres DB,但每次我运行命令时:

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 在内的所有角色!此角色还具有超级用户、创建角色和创建数据库属性。

我不知道怎么了..

编辑我的数据库.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 

我做错了什么:

我使用 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

最新更新