【发布时间】:2013-04-09 22:59:24
【问题描述】:
我正在尝试使用 rails 3+ 设置 psql。我关注了这个http://railscasts.com/episodes/342-migrating-to-postgresql,一切顺利。我的 database.yml 有这个:
# PostgreSQL. Versions 8.2 and up are supported.
#
# Install the pg driver:
# gem install pg
# On Mac OS X with macports:
# gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
# On Windows:
# gem install pg
# Choose the win32 build.
# Install PostgreSQL and put its /bin directory on your path.
#
# Configure Using Gemfile
# gem 'pg'
#
development:
adapter: postgresql
encoding: unicode
database: app_development
pool: 5
username: root
password:
host: localhost
port: 5432
# Connect on a TCP socket. Omitted by default since the client uses a
# domain socket that doesn't need configuration. Windows does not have
# domain sockets, so uncomment these lines.
#host: localhost
#port: 5432
# Schema search path. The server defaults to $user,public
#schema_search_path: myapp,sharedapp,public
# Minimum log levels, in increasing order:
# debug5, debug4, debug3, debug2, debug1,
# log, notice, warning, error, fatal, and panic
# The server defaults to notice.
#min_messages: warning
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: postgresql
encoding: unicode
database: app_test
pool: 5
username: root
password:
host: localhost
port: 5432
production:
adapter: postgresql
encoding: unicode
database: app_production
pool: 5
username: root
password:
host: localhost
port: 5432
当我运行 'psql -U root -h localhost -p 5432 -W' 时,无论我给它什么密码,它都无法连接。'rake db:create:all' 也失败了
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"app_production", "pool"=>5, "username"=>"root", "password"=>nil}
有什么想法吗?
【问题讨论】:
-
教程没有在
database.yml中设置host: localhost。这种差异意味着它不受pg_hba.conf中相同的身份验证规则的约束(它使用 unix 域套接字,而不是 TCP 套接字)。这可能解释了为什么它不需要密码,而您却需要。
标签: ruby-on-rails postgresql unix