如何在heroku上运行一个简单的文件
假设我已经在 github 上安装了 Rails 应用程序,并且正在 heroku 上部署 github 存储库。
我遇到过这样的情况:我有一个包含一堆单词的简单文本文件(它在我的 github 存储库中)。我想将这些单词(使用简单的 ruby 程序)插入数据库中。除了使用 tap 命令,在 Heroku 中是否可以只运行我的简单 ruby 程序并将单词插入数据库......或者只是在终端上显示它们?
也许令人困惑,但基本上我想知道如何从 heroku 命令行运行简单的 ruby 脚本?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
使用 cedar,你可以运行 bash:
With cedar, you can run bash:
将您的 ruby 脚本放在 bin 目录中,然后 git 将其推送到 Heroku。现在您可以在 heroku 控制台中执行 shell 命令。
例如,如果您的 Ruby 脚本是 bin/foo.rb,您可以在 Heroku 控制台中运行以下命令:
请注意反引号的使用。
Put your ruby script in a bin directory and git push it to Heroku. Now you can execute a shell command in the heroku console.
For example, if your Ruby script is bin/foo.rb, you can run the following command in the Heroku console:
Note the use of backticks.
既然您谈论的是 Heroku 上的 Rails 应用程序,那么如何使用
rails runner
:请查看 RailsGuides for
rails runner
了解更多详细信息。或者,将该脚本转换为rake 任务 如果跑步者不是你的菜(例如,对于 重复任务)。
Since you're talking about a Rails app on Heroku, how about using
rails runner
:Have a look at the RailsGuides for
rails runner
for more details.Alternatively, turn that script into a rake task if runner is not your cup of tea (eg, for recurring tasks).
如果做不到这一点,尝试一个简单的 Sinatra 应用程序作为 importer.rb?
点击 http://example.com/import/a-long-unguessable-url-浏览器中的 fdsjklgfuiwfnjfkdsklfds 将开始导入。对于外部 cron 任务来说很方便。
您还需要存储库中的 config.ru 文件:
Failing that, try a simple Sinatra application as importer.rb?
Hitting http://example.com/import/a-long-unguessable-url-fdsjklgfuiwfnjfkdsklfds in your browser would kick off the import. Handy for an external cron task.
You would also need a config.ru file in the repo:
如果您想在 Heroku 上运行任意本地 Ruby 文件,请查看博客文章
http://www.22ideastreet.com/debug/run-local-scripts-on-heroku
有一些事情需要注意(长时间运行时间等),但如果你有您尚未签入但想要在 Heroku 实例上测试或运行的文件。
If you want to run arbitrary local Ruby files on Heroku, check out the blog post at
http://www.22ideastreet.com/debug/run-local-scripts-on-heroku
There are some things to watch out for (long run times, etc.) but it might be useful if you have a file that you haven't checked in that you want to test or run on a Heroku instance.