2

我能够使用 JRuby 和 trinidad 在 heroku 上运行 Web 进程。我在我的 Gemfile 中使用它,这似乎是目前自定义 heroku buildpack 的最佳实践:

ruby "1.9.3", :engine => "jruby", :engine_version => "1.7.0"

但是,在尝试通过以下方式加载数据库(或连接到 rails 控制台)时:

heroku run rake db:schema:load

或者

heroku run console

该命令只是挂起。跟踪 heroku 日志,我看到进程启动并没有错误地完成,但我从来没有在本地命令行上得到任何输出,它只是挂起。

2012-11-16T16:02:46+00:00 heroku[api]: Starting process with command `bundle exec rake db:schema:load`
2012-11-16T16:02:51+00:00 heroku[run.1]: Awaiting client
2012-11-16T16:02:51+00:00 heroku[run.1]: Starting process with command `bundle exec rake db:schema:load`
2012-11-16T16:02:51+00:00 heroku[run.1]: State changed from starting to up
2012-11-16T16:02:51+00:00 heroku[run.1]: State changed from starting to up
2012-11-16T16:03:21+00:00 heroku[run.1]: State changed from up to complete
2012-11-16T16:03:21+00:00 heroku[run.1]: State changed from up to complete
2012-11-16T16:03:21+00:00 heroku[run.1]: Process exited with status 0 

我猜我需要在 Procfile 中添加一个 rake 和控制台项,并尝试了一些不同的组合,但没有任何效果。它总是挂起。我也没有看到任何其他人的 JRuby Procfile 包括这些项目。

4

1 回答 1

1

这原来是从 JRuby 中运行 heroku gem 的一个问题。从 JRuby(MRI 1.9.3)外部通过 heroku 工具带运行命令可以正常工作。

于 2012-11-17T21:44:26.163 回答