Rails连接到没有用户名或密码的数据库

时间:2014-06-04 13:06:38

标签: postgresql ruby-on-rails-4

我正在使用Rails开发Web 4.尝试配置生产环境我注意到不需要用户名和密码。我在 database.yml

下有以下配置


development:
  adapter: postgresql
  encoding: unicode
  database: walko
  username: walko
  password:
  pool: 5
  timeout: 5000

production: adapter: postgresql encoding: unicode database: <%= ENV['DB_NAME'] %> username: password: pool: 5 timeout: 5000

我可以通过 rails console 实现对生产数据库的迁移和连接。

这怎么可能?

1 个答案:

答案 0 :(得分:7)

Rails使用Ruby Pg gem,它使用PostgreSQL的libpq客户端库。

如果没有提供用户名,

libpq将使用当前系统用户名

如果在peer中使用ident sameusertrustpg_hba.conf身份验证,则服务器无需密码。如果服务器没有请求密码,libpq不会尝试发送密码,并且如果缺少密码则不关心。

您实际上也可以为数据库提供空字符串;然后,libpq将使用与您的用户名相同的数据库(如果存在)。