如何设置 heroku postgresql 应用程序的路径?

Posted

技术标签:

【中文标题】如何设置 heroku postgresql 应用程序的路径?【英文标题】:How can i setup the path for heroku postgresql app? 【发布时间】:2012-07-25 15:02:48 【问题描述】:

我刚刚安装了 heroku PSQL 应用程序 (v1.0),但无法使用 gem pg“0.1.4”连接我的 rails 应用程序。我已经将路径 PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH" 添加到我的 .profile 和 .bashrc 文件中,但似乎没有什么能让我通过调用“psql”来运行 psql。我使用“psql -h localhost”取得了成功。当我选择“psql”时,我得到:

Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

我正在使用山狮。

【问题讨论】:

我也有同样的问题,苦苦挣扎了几个小时 同样的问题 - 路径不工作。我的 .bashrc 与 Diego 具有相同的 PATH 并且它没有被加载。如果我运行“source .bashrc”然后“which psql”它返回正确的版本“/Applications/Postgres.app/Contents/MacOS/bin/psql”但是如果我启动一个新的终端窗口它返回这个:“/usr/ bin/psql”这里有什么问题?该应用程序安装正确,可以使用,但不会从 PATH 加载。 这是问题吗? nextmarvel.net/blog/2011/09/… 命令 "which psql" "ls -la ~/" 和 "echo $PATH" 的结果是什么? 【参考方案1】:

仍然很确定现有的两个答案都回答了错误的问题。作者在标题中提到他遇到了 PATH 问题,无法连接到他的数据库或配置 rails。这是我遇到的情况,这是我的解决方案。

在我的 .bashrc 文件中运行 postgres.app 并按照 postgress.app 文档 - http://postgresapp.com/documentation 中的指示设置 PATH 后:

PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

问题是这个路径设置在重启 terminal.app 后没有生效 - 运行 which psql 正在返回“/usr/bin/psql”中的副本,这是 Lion 和 Mountain Lion 安装的副本,不是安装在“/Applications/”中的新版本。它甚至在 Postgres.app 说明中说“运行哪个 psql 以告知正在加载正确的版本”。

无论如何——我发现奇怪的是,在我跑完之后:

source .bashrc

然后命令“which psql”将返回位于 /Applications/ 中的正确版本。

此时我被难住了,不得不寻求一些额外的帮助。我点击的人也认为这很奇怪,但是他们很快发现 .bashrc 或 .profile 文件都没有被加载。这很奇怪,我没有在任何平台上看到过这个我的其他 Mac 通过狮子跑豹。

现在终于解决了-我不确定这是否正确,但它确实永久解决了我的问题。我们发现它们是一个被加载到终端的配置文件 - .bash_login 文件。最后的解决方案就是使用 .bash_login 来获取 .bashrc 文件。这是对 .bash_login 的编辑:

source $HOME/.bashrc

就这么办了。

无论如何,我不能说这正是 diego 需要/正在寻找的解决方案,但这绝对是我的问题。

【讨论】:

您也可以将 PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH" 添加到 .bash_login。 或 .bash_profile,每次重新启动控制台时都会重新加载 如果您知道自己在做什么,只需将 /Applications/Postgres.app/Contents/MacOS/bin 添加到您的 bash 路径 尼克在我的情况下,当我启动 iTerm.app 时,这些文件都没有被加载。我怎样才能知道正在加载什么? 文档有误。将“Postgres.app”更改为“Postgres93.app”【参考方案2】:

您需要将host:localhost 添加到您在开发环境中使用的任何数据库配置中(阅读开发/测试/生产/等):

config/database.yml

development:
  adapter: postgresql
  encoding: unicode
  database: my_awesome_app_development
  pool: 5
  host: localhost
  username: my_awesome_app_development
  password:

编辑:另见Repairing Postgresql after upgrading to OSX 10.7 Lion

【讨论】:

他正在寻求有关 postgres.app PATH 设置的帮助,而不是配置 rails 应用程序。 @Nick:不,他不是。前端只是找不到作为 rendez-vous 点的 unix-domain postgres-socket。这是一个与 OSX 相关的安装问题。 (已经有好几个了) 我遇到了与 OP 相同的错误,并且像在这个答案中那样对主机进行硬编码确实解决了我的问题。另一方面,我需要一个不需要我这样做的解决方案,因为这就是工作开发环境的设置方式,所以我正在寻找替代方案。我已经尝试在.bash_profile 中设置PGHOST=locahost,我发现在某些情况下确实有效...【参考方案3】:

我知道这是一个老问题,但我也遇到了同样的问题。问题是文档中有错字。应用是 Postgres93.app,不是 Postgres.app,所以路径应该有 Postgres93.app:

PATH="/Applications/Postgres93.app/Contents/MacOS/bin:$PATH"

令人惊讶的是有多少关于此的帖子,而且似乎还没有注意到错字。改变这就是让psqlwhich psql 为我正常工作所需要的。

【讨论】:

【参考方案4】:

您的 PATH 可能有误。要找出 psql 脚本的 PATH(在 mac 上),请从 Applications/Postgres 安装中的 finder 打开 sql shell 脚本。这将为您提供有关其安装位置的提示。这打开了一个窗口,告诉我它位于此处:/Library/PostgreSQL/8.4/scripts/runpsql.sh

然后,我在终端窗口中输入以下内容来设置 PATH 变量: $PATH="/Library/PostgreSQL/8.4/bin:$PATH"

【讨论】:

以上是关于如何设置 heroku postgresql 应用程序的路径?的主要内容,如果未能解决你的问题,请参考以下文章

我如何将本地 PostgreSQL 数据库复制到 Heroku for Spring Boot 应用程序

如何配置 heroku.yml 以使用 Heroku PostgreSQL 插件?

无法连接到服务器:PostgreSQL -Heroku

如何在Heroku中启动postgresql服务器?

如何在 Flutter+Spring Boot+PostgreSQL+Heroku 结构中发送和存储图像?

如何在heroku psql上创建表?