0

我创建了一个新的 rails 应用程序,rails new app_name -d postgresql但我没有使用任何 rails 命令(rails s、、rails g controller ControllerName等)。我收到这些错误:

/Users/sebkomianos/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:1216:in ``initialize': could not connect to server: No such file or directory (PG::Error)

这是我的database.yml文件:

development:
  adapter: postgresql
  encoding: unicode
  database: project_development
  pool: 5
  username: project
  password:`

test:
  adapter: postgresql
  encoding: unicode
  database: project_test
  pool: 5
  username: project
  password:`

production:
  adapter: postgresql
  encoding: unicode
  database: project_production
  pool: 5
  username: project
  password:`

当我使用标准rails new app_name命令创建 rails 应用程序并手动更改Gemfile以使用pg gem.

几周前,我在使用 ruby​​2,我创建的应用程序运行良好。Rails 版本是 3.2.13。

有任何想法吗?

更新:有趣的(至少对我来说)是我将应用程序部署到 heroku 并且在那里运行良好。现在,如果我运行rake db:create一切似乎在本地也可以正常工作(无需更改database.yml文件中的任何内容)。也许这让我的问题更清楚?

4

1 回答 1

1

您可能需要socket在您的参数中指定参数config/database.yml以指定 Postgres UNIX 类型套接字的完整路径(如果这是您正在使用的)。它可能位于非标准位置。

我通常避免检查config/database.yml项目源存储库,因为它会导致与使用具有不同配置的相同代码库的其他人发生冲突。包括一个database.yml.example作为一个有用的模板来开始。

添加host: localhost通常具有强制 TCP/IP 连接的效果,但这可能对您不起作用。有时host: 127.0.0.1可以代替,因为localhost可能被解释为“使用默认的 UNIX 套接字”。

于 2013-05-01T17:55:37.997 回答