dis*_*yer 3 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控制台实现对生产数据库的迁移和连接.
这怎么可能?
Rails使用Ruby Pggem,它使用PostgreSQL的libpq客户端库.
libpq如果未提供用户名,则使用当前系统用户名.
没有密码是如果服务器所需peer,ident sameuser或trust认证中使用pg_hba.conf.如果服务器没有请求密码,libpq则不会尝试发送密码,也不关心是否缺少密码.
实际上,您也可以为数据库提供空字符串; libpq然后将使用与您的用户名相同的数据库(如果存在).