Rails执行rake db:create无法创建PostgreSQL数据库问题求助
问题原因
报错的核心是你配置文件中指定的PostgreSQL角色eshop未在本地数据库中创建,导致连接校验失败,无法执行建库操作。
解决步骤
- 执行命令进入PostgreSQL交互控制台:
如果你是Mac通过Homebrew安装的PostgreSQL,直接执行:psql postgres
如果提示权限不足,使用系统管理员权限进入:sudo -u postgres psql - 在psql控制台内执行以下命令,创建对应角色并赋予权限:
注意此处设置的密码要和CREATE ROLE eshop WITH LOGIN PASSWORD 'eshop'; ALTER ROLE eshop CREATEDB;database.yml中配置的password字段一致。 - 执行
\q退出psql控制台。 - 回到Rails项目根目录,重新执行建库命令即可:
rake db:create
额外排查项
如果执行完上述步骤仍然报错,可以依次检查以下内容:
- 确认本地PostgreSQL服务处于运行状态,Homebrew安装的用户可以执行
brew services restart postgresql重启服务 - 确认
database.yml中配置的host、port字段和本地PostgreSQL的监听配置一致,默认安装的PostgreSQL端口为5432,配置host: localhost即可正常访问
内容的提问来源于stack exchange,提问作者Tazoh Yanick
相关产品推荐
相关产品推荐

