我试图在我的 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:/tmp
或psql
等-h/tmp/
时设置一个明确的套接字目录;使用 TCP/IP:
host: localhost
、psql -h localhost
等;
您可以在此处找到更多详细信息:
关于ruby-on-rails - Rails 看不到我的 Postgres 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16965022/