29

嗨,我正在尝试将 postgresql 连接到我的 rails 项目。我正在学习测试,但由于密码不正确的 postgresql 错误,我的测试没有运行:

Edmunds-MacBook-Pro:langexchange edmundmai$ rake test:units
rake aborted!
fe_sendauth: no password supplied

我已经阅读过,我的 pg_hba.conf 文件原本是这样的:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     edmundmai  

这是我的 rails 项目中的 database.yml 文件

default: &default
  adapter: postgresql
  encoding: utf8
  pool: 5
  username: edmundmai
  password: 

development:
  <<: *default
  database: project_development

test:
  <<: *default
  database: project_test

production:
  <<: *default
  database: project_production

有谁知道我该如何解决这个问题?如果方便的话,我们可以聊天。

4

4 回答 4

22

确保您已在生产托管服务器上定义了 RAILS_ENV 和 RACK_ENV。我遇到了一个类似的问题,除此之外一切正常rake,解决方案是将 RACK_ENV=production 添加到我的环境中。RAILS_ENV 已设置为生产。

export RACK_ENV=production

bundle exec rake db:version

您应该看到一些输出,例如:

Current version: 20121126151935

解决方案:确保您的 Rails 应用程序可以访问 RAILS_ENV 和 RACK_ENV 环境变量。另外,确保它们的值相同。

于 2013-05-09T20:38:41.013 回答
11

首先你应该改变:

local   all             all                                     trust

到:

local   all             all                                     md5

然后,您应该在 PostgreSQL 中使用and创建一个super_user ,然后将新用户添加到您的文件中。usernamepasswordusernamepassworddatabase.yml

要创建新super_user的,打开Pg Admin III并右键单击底部Login Roles以创建新的超级用户。

于 2012-12-03T19:38:00.687 回答
4

test在文件的和development部分下的本地计算机上,database.yml您应该将 更改username为您的登录用户名。rails 生成器使其与您的应用程序名称相同,这将不起作用。该production部分将取决于您的生产设置。如果你使用heroku,你不需要在那里改变任何东西。

于 2014-03-28T10:11:05.650 回答
0

您只需要使用 pgadmin 在 postgres 中创建用户/密码和模式(db),并将用户/密码放在 database.yml 中。当我尝试在当前的 rails 项目文件夹中使用 rake db:create 创建数据库时,它失败了,并提示我错误无法为 postgreSQL 适配器创建。之后,我使用 pgadmin 创建了 rails 项目的模式,一切都很好,pg_hba.conf 没有任何更改。

于 2014-11-29T23:42:23.957 回答