带有远程Test Postgres DB的Rails

时间:2012-05-09 15:07:46

标签: ruby-on-rails-3.2 postgresql-8.4

http://ruby.railstutorial.org/版本3.2学习

在6.2.1节末尾插入以下内容:

$ bundle exec rake db:test:prepare
rake aborted!
FATAL:  no pg_hba.conf entry for host "192.168.108.1", user "sample_user", database "postgres", SSL on
FATAL:  no pg_hba.conf entry for host "192.168.108.1", user "sample_user", database "postgres", SSL off

Tasks: TOP => db:test:load => db:test:purge

192.168.108.1是我的IP。如果我在database.yml中有另一个条目,为什么要查找它? 用户sample_user是所有数据库的所有者,并且具有CREATEDB。 我可以通过192.168.108.1的psql成功连接到192.168.108.2上的任何数据库

我是如何克服它的,还是使用远程postgres?

的Gemfile

source 'https://rubygems.org'

gem 'rails', '3.2.3'
gem 'bootstrap-sass', '2.0.0'
gem 'pg', '0.12.2'

group :development, :test do
  gem 'rspec-rails', '2.9.0'
end

group :assets do
  gem 'sass-rails',   '3.2.4'
  gem 'coffee-rails', '3.2.2'
  gem 'uglifier', '1.2.3'
end

gem 'jquery-rails', '2.0.0'

group :development do
gem 'annotate', '~> 2.4.1.beta'
end

group :test do
  gem 'capybara', '1.1.2'
  gem 'spork', '0.9.0'
end

的database.yml

common: &common
    adapter: postgresql
    username: sample_user
    password: qwerty123
    host: 192.168.108.2

development:
    <<: *common
    database: sample_db_dev

test:
    <<: *common
    database: sample_db_tst

production:
    <<: *common
    database: sample_db_pro

pg_hba.conf on 192.168.108.2

host    sample_db_dev   sample_user 192.168.108.1/32   md5
host    sample_db_tst   sample_user 192.168.108.1/32   md5
host    sample_db_pro   sample_user 192.168.108.1/32   md5

在192.168.108.1上没有本地的pg_hba.conf

ruby​​ 1.9.3p125 Rails 3.2.3 psql(PostgreSQL)8.4.11

1 个答案:

答案 0 :(得分:1)

pg_hba.conf是PostgreSQL服务器上的一个文件,用于定义允许哪些用户使用哪种身份验证方法连接到哪些主机的数据库。

http://www.postgresql.org/docs/8.4/interactive/auth-pg-hba-conf.html

因此,该消息告诉您服务器尚未被告知允许您尝试的连接。您必须建立PostgreSQL允许的连接,或者通过更新pg_hba.conf文件告诉它允许这个连接。

如果您无法访问服务器,并且没有选择授予您PostgreSQL连接权限,则无法连接。这就是安全的本质。