无法连接到本地PostgreSQL数据库

时间:2012-06-02 08:32:28

标签: ruby-on-rails ruby postgresql

我创建了一个简单的rails应用程序:

1

  

$ rails new myapp1 -d postrgresql

2 即可。已移除/public/index.html

第3 即可。创建了Homecontroller和动作

4 即可。写了路线

  

myapp1 :: Application.routes.draw做

  root :to => "home#index"
  match 'about' => 'home#about'
  match 'contacts' => 'home#contacts'
  match 'projects' => 'home#projects'
end

5 即可。创建了视图和默认布局

6 即可。底线。这是database.yml

  

发展:

  adapter: postgresql
  encoding: unicode
  database: myapp1_db
  host: localhost
  pool: 5
  username: myapp1_user
  password: 1234

test:
  adapter: postgresql
    encoding: unicode
    database: myapp1_db
    host: localhost
    pool: 5
    username: myapp1_user
    password: 1234

production:
  adapter: postgresql
    encoding: unicode
    database: myapp1_db
    host: localhost
    pool: 5
    username: myapp1_user
    password: 1234

当然我创建了用户和数据库

sudo -u postgres psql
postgres=# \password
postgres=# create user myapp1_user with password '1234';
postgres=# create database myapp1_db owner myapp1_user; 

但有一些担忧:

1 即可。现在我不使用任何数据库,但尽管如此,应用程序仍然出错

  

PG ::错误致命:用户“myapp1”的对等身份验证失败

2 即可。铁轨似乎对database.yml视而不见。为什么它使用用户 myapp1 而不是 myapp1_user

2 个答案:

答案 0 :(得分:1)

在YAML中,空白是重要的。

production:
  adapter: postgresql
    encoding: unicode
    ...
    password: 1234

应该是:

production:
  adapter: postgresql
  encoding: unicode
  ...
  password: 1234

答案 1 :(得分:1)

在database.yml文件中提供主机和端口,如下所示:

    development:
      adapter: postgresql
      encoding: unicode
      database: myapp1_db
      host: localhost
      pool: 5
      username: myapp1_user
      password: 1234
      host: localhost
      port: 5432

在Ubuntu 12.04 LTS上使用Rails 3.2.x和PostgreSQL 9.1.x上的魅力工作