ruby-on-rails - Rails 看不到我的 Postgres 数据库

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

我试图在我的 Macbook 上加载 Rails 3.2 项目,但我遇到了困难。我通过 brew 安装了 Postgres 9.1.4。将 /usr/local/bin 放在我的 $PATH 前面后,我现在可以通过 psql 从命令行进入 Postgres。

但是,在我的 Rails 项目中,当我运行时:

rake db:create:all

我收到以下错误:

could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/pgsql_socket/.S.PGSQL.5432"?

那个文件确实不存在。然而,我可以通过命令行使用 psql 访问数据库。

为什么它会在那个区域查找,我该怎么做才能让它在 Postgres 的正确位置(无论是什么)查找?

最佳答案

对于 Homebrew 和 Postgres.app 的用户来说,这在 OS X 系统上很常见。

你的 Rails 'Pg' gem 是根据 Apple 在某些 Mac OS X 版本上预安装的旧 PostgreSQL 版本编译的,而不是你自己安装的版本。发生这种情况是因为 PATH 在您安装的版本之前有 Apple 版本的 pg_config

这些替代方案中的任何一个都可以:

  • 重新编译 Pg gem 以使用正确的 libpq,方法是设置您的 PATH,以便在编译之前正确的 pg_config 在上面(最佳选择);

  • 当你连接host:/tmppsql-h/tmp/ 时设置一个明确的套接字目录;

  • 使用 TCP/IP:host: localhostpsql -h localhost 等;

您可以在此处找到更多详细信息:

关于ruby-on-rails - Rails 看不到我的 Postgres 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16965022/

相关文章:

ruby-on-rails - 如何使用 Rails 4 安装 Refinery CMS

ruby-on-rails - 创建一个后 Controller 规范测试

sql - PostgreSQL:在 timestamp::DATE 上创建索引

xml - 春&jOOQ : configuring postgreSQL driver throws an error

css - 允许在多个 Rails 应用程序上自定义主题

ruby-on-rails - Association.first 在使用具有 has_many 关联的 FactoryGirl 工厂的 RSpec 功能规范中返回 nil

ruby-on-rails - 如何在 Rails 3 中创建原子提要?

sql - 如何在 postgresql 中使用 “time” 字段按天和 2 小时分组?

ruby-on-rails - 设计通过 reset_password_token 获取用户

deployment - Professional Rails 3.2+ 部署到 Heroku