我正在使用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 实现对生产数据库的迁移和连接。
这怎么可能?
答案 0 :(得分:7)
Rails使用Ruby Pg
gem,它使用PostgreSQL的libpq
客户端库。
libpq
将使用当前系统用户名。
如果在peer
中使用ident sameuser
,trust
或pg_hba.conf
身份验证,则服务器无需密码。如果服务器没有请求密码,libpq
不会尝试发送密码,并且如果缺少密码则不关心。
您实际上也可以为数据库提供空字符串;然后,libpq
将使用与您的用户名相同的数据库(如果存在)。