【发布时间】:2013-09-06 00:29:20
【问题描述】:
我的目标是拥有一个 Postgres 设置,我可以使用它来开发我的 rails 应用程序,然后将其推送到 Heroku,而无需更改数据库配置文件。看起来很简单,对吧?
我在互联网上看到很多关于 PostgreSQL 9.2.x 无法在 OS X 10.8 上运行的信息,但我仍在努力让它与 Rails 一起使用。没有意识到 OS X 附带的 PSQL 版本,我开始安装它。 (注意:我在循环调试,所以事情可能没有像我预期的那样工作。)
我尝试使用the official graphical installer listed here 进行下载和安装,然后我重新启动了我的 Mac。我看到创建了一个额外的用户帐户,我立即将其删除。 (我知道,我知道,这可能是导致一些心痛的原因,但有一个额外的用户帐户似乎不合理。)
在运行我的 rails 应用程序时,它无法连接到 postgres。我尝试从终端运行 psql。
psql: 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"?`
然后我开始使用自制软件安装 Postgres。我安装了自制软件,然后安装了 postgres。一样。我用谷歌搜索了一下,然后在 Postgres 论坛上遇到了一个帖子。我从中得到的是 OS X 10.7 和 10.8 之间发生了一些变化,但这不是我的问题的原因。
接下来,我尝试使用self-contained the Postgres.app。现在,我能够创建用户并连接到数据库。 Rails 能够连接到 Postgres,但抱怨我在 config.yaml 中定义的数据库不存在。所以我创造了它——至少我是这么认为的。
在“自包含”版本的 PSQL 中运行 CREATE DATABASE my_db 不起作用 - 即使没有自包含应用程序,PSQL 也会出现该套接字错误。然后我尝试创建一个具有写访问权限的新用户。没有。 CREATE 默默地失败了。
我尝试将 localhost 添加到我的环境变量中,它似乎已经解决了端口错误 - 但现在 Rails 再次无法找到 Postgres。
我卸载了 brew 版本。我删除了企业工具等。仍然没有运气。重启。仍然没有运气。
我刚刚卸载了 brew,我的配置如下所示:
development:
adapter: postgresql
database: my_db
pool: 5
timeout: 5000
host: localhost
port: 5432
Rails 说数据库不存在。
我需要做什么才能让 Postgres 在 Mac OS X 10.8.4 Mountain Lion 上与 Rails 3.2.6 一起工作?
【问题讨论】:
-
我真的希望有人找到负责他们的 PostgreSQL 内置默认安装的 Apple 人员并对他们大喊大叫,直到他们停止将其放在默认端口 (5432) 上并停止将他们的 libpq 副本和psql 在路径上。它给 Mac 用户带来了如此多的混乱。也就是说,您在这里创建了许多自己的问题,例如“我看到创建了一个额外的用户帐户,我立即删除了它”和“这不起作用,我将尝试另一个没有卸载前一个”的方法。
-
当你说“Rails 说数据库不存在”时,你能说得更具体些吗? 请提供确切的错误消息。
标签: macos postgresql osx-mountain-lion