Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Postgresql.app与自制软件_Ruby On Rails_Ruby On Rails 3_Heroku - Fatal编程技术网

Ruby on rails Postgresql.app与自制软件

Ruby on rails Postgresql.app与自制软件,ruby-on-rails,ruby-on-rails-3,heroku,Ruby On Rails,Ruby On Rails 3,Heroku,我是RoR的新手,我希望将我的下一个应用部署到heroku。我希望我的开发和测试环境与我的生产环境相匹配,以实现最平稳的过渡。因此,我开始在我的系统上安装postgresql。这个过程非常令人沮丧,我也不感到困惑。我看了无数的教程,但都没用,似乎很多教程都有相互矛盾的信息。以下是我所知道的: 安装postgresql的方法有很多。常见选项有macports、自制、fink、Postgresql.app或enterpriseDB。安装前一个应用程序后,您必须创建rails应用程序并运行: rail

我是RoR的新手,我希望将我的下一个应用部署到heroku。我希望我的开发和测试环境与我的生产环境相匹配,以实现最平稳的过渡。因此,我开始在我的系统上安装postgresql。这个过程非常令人沮丧,我也不感到困惑。我看了无数的教程,但都没用,似乎很多教程都有相互矛盾的信息。以下是我所知道的:

安装postgresql的方法有很多。常见选项有macports、自制、fink、Postgresql.app或enterpriseDB。安装前一个应用程序后,您必须创建rails应用程序并运行:

rails new <app_name> -d postgresql
然后,编辑database.yml以遵循以下内容:

development:
  adapter: postgresql
  encoding: unicode
  database: <your_database_name>
  host: localhost
  pool: 5
  username: <username>
  password:
如果我重新启动,一切都会好起来。好的,这让我假设我的系统正在使用postgresql.app来运行postresql。有了这些信息,我自信地卸载了postgresql的macports和hombrew安装。但是,在执行此操作时,我在尝试与数据库交互时遇到以下错误:

Library not loaded: /usr/local/lib/libpq.5.4.dylib (LoadError)
我重新安装了macports,但仍然收到相同的错误。然后我重新安装自制软件,错误就消失了。然后我再次卸载macports,一切仍然正常。看来postgresql.app和我的自制软件安装在某种程度上是相互依赖的。如果我是正确的,它们应该能够彼此独立运行,因为它们都是postgreql的完整安装。在这一点上,我几乎没有主意了。对于如何完成这一过程以及正在发生的一切,我们将非常感谢

编辑

$ which psql
显示:

/usr/local/bin/psql

显示:

lrwxr-xr-x  1 robertquinn  admin  35 Jul 29 17:32 /usr/local/bin/psql -> ../Cellar/postgresql/9.1.4/bin/psql 

自制啤酒绝对是一条必由之路。在使用Macports多年后,我发现自制软件更易于使用、升级和维护

如果您不熟悉自制软件,有时在安装某些软件时,会在安装结束时打印输出,这将为您提供额外的任务。有时,安装会要求您手动创建新链接,有时会要求您使用位于Cell中的新可执行文件重新创建链接。确保您阅读了该输出,并按照安装后的说明进行操作

遵循这些说明后,打开一个新的终端窗口,以确保您的设置得到遵守

另外,如果您使用
rails new app_name-D postgresql
,您的
数据库.yml
文件应该已经正确配置,当然,除非您已经将您的postgres实例配置为使用用户名和密码

为了使启动和停止postgres更容易,我将这些命令添加到我的
.profile
文件中

# postgres
alias pg_start="pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start"
alias pg_stop="pg_ctl -D /usr/local/var/postgres stop -s -m fast"

我猜您的postgres服务器是在postgres.app下运行的,但是您的命令行路径指向自制的可执行文件?“哪个psql”显示了什么?然后“ls-l”这个PathCell就是homebrew安装的地方,你可以尝试将postgres.app添加到你的路径中,好的,我已经解决了这个问题。首先,我卸载了postresql的所有安装(macports、postgresql.app、homebrew)。这对确保我得到所有东西有些挑战,但谷歌确实帮了我的忙。然后,我在终端中运行“ps aux”以显示所有进程。我使用ctrl+f找到了所有带有“postgresql”的进程,然后用“kill”杀死它们。最后,我通过自制重新安装了postgresql,并遵循自制提供的安装说明。最后,postegresql开始运行。我上面的rails命令处理了其余的问题。你们中的一位可以发布你们为解决这个问题所做的实际工作吗?我和你在同一个地方@flyingarmadillo@ajbraus你哪里有麻烦?上面我使用别名的命令是启动和停止postgres的命令。要开始,您需要键入(在终端中)
pg_ctl-D/usr/local/var/postgres-l/usr/local/var/postgres/server.log start
。这有意义吗?我得到这个:服务器启动sh:/usr/local/var/postgres/server.log:没有这样的文件或目录OK。这个问题解决了!:)刚碰了一下文件&完成了。那很简单。
ls -l /usr/local/bin/psql
lrwxr-xr-x  1 robertquinn  admin  35 Jul 29 17:32 /usr/local/bin/psql -> ../Cellar/postgresql/9.1.4/bin/psql 
# postgres
alias pg_start="pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start"
alias pg_stop="pg_ctl -D /usr/local/var/postgres stop -s -m fast"