我在从纯红宝石评估 postgres 数据库时遇到问题。
我使用 Rails 创建了一个 Postgres 数据库
>rails new www --database=postgresql
使用 Rails 4.2.5 而 Postgres 是 9.4
它生成以下config/database.yml文件。
default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: www_development
test:
<<: *default
database: www_test
production:
<<: *default
database: www_production
username: www
password: <%= ENV['WWW_DATABASE_PASSWORD'] %>
我可以很好地运行 rails server、db:drop、db:create 和 db:migrate。
我也可以使用 psql 访问数据库
>psql www_development
但是当我从非 Rails 项目目录运行以下app.rb时,我收到fe_sendauth: no password provided (PG::ConnectionBad)错误消息。
这显然不是 Rails 问题。我要么在我的 ruby 中遗漏了一些东西,要么 Postgres 需要一个 tweek 来处理 Rails 和纯 Ruby 之间的一些差异[我不知道]。我还包含了 Postgres 的pg_hba.conf文件。
想尽办法想办法解决这个问题。任何帮助将非常感激。
应用程序.rb
require 'yaml'
require 'active_record'
require 'pg'
ActiveRecord::Base.establish_connection(
adapter: 'postgresql',
host: 'localhost',
database: 'www_development',
)
/etc/postgresql/9.4/main/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer
local all all peer
host all all 127.0.0.1/32 md5
host all all ::1/128 md5