【问题标题】:How do I use my Sinatra-powered Ruby application to scrape data to a Heroku PostgreSQL database如何使用 Sinatra 驱动的 Ruby 应用程序将数据抓取到 Heroku PostgreSQL 数据库
【发布时间】:2012-08-27 04:43:55
【问题描述】:

我成功地将基于 Sinatra 的 Ruby 应用程序推送到 Heroku。

我推送的其中一个文件是一个 Ruby 脚本,它抓取网络并将数据放入 PostgreSQL 数据库(非 Sinatra 数据库)。

我为 Heroku 应用程序设置了一个 PostgreSQL 插件,但我还没有做得更进一步。

我想要弄清楚的是如何编辑抓取脚本(它使用 Sequel gem)以将它抓取的数据添加到 Heroku PostgreSQL 附加数据库。

我看了一下this tutorial,但我卡在了第一步。恐怕我不明白他们列出的命令提示符语法。

此外,当我尝试使用 PGAdmin III 遵循他们的替代说明时,我遇到了另一个问题。 Heroku 教程说:

您也可以使用 PGAdmin GUI 工具创建转储文件。为此,请从对象浏览器中选择一个数据库,然后单击工具 > 备份。将文件名设置为 data.dump,使用“COMPRESS”格式,并(在“Dump Options #1”下)选择不保存 Privilege 或 Tablespace。

这里的问题是我在 PGAdmin 中看不到“COMPRESS”格式。相反,我只是将文件“data.dump”保存为“所有文件”类型,没有任何格式。

我不确定这是否正确,如果正确,我接下来需要做什么。

任何人都可以确认我在正确的道路上,如果是,我下一步具体必须做什么?

编辑:为澄清起见,我试图让我的抓取脚本将其抓取数据添加到 Heroku 应用程序的 PostgreSQL 数据库。现在,它仍然像在我的本地机器上一样编写,抓取到我的本地 PostgreSQL 数据库。

【问题讨论】:

  • 有点困惑,您是想安排脚本每隔一段时间(例如每天一次)运行一次以抓取源站点并向数据库添加新数据,还是想运行一次是时候播种数据库了?如果是前者,他们有像 heroku scheduler 这样的插件。如果是后者,让你的爬虫填充一个本地数据库,那么你应该能够heroku db:push(至少我上次玩 Heroku 时是这样)
  • @JoshuaCheek,很抱歉造成混乱。我想我对此有点困惑。实际上,我要做的是让脚本抓取到我的 Heroku 应用程序的 PostgreSQL 数据库。现在,我把它写成我推它之前的样子。也就是说,它会抓取到我的本地 PostgreSQL 数据库。
  • 那么你的困难是如何让脚本访问 Heroku 为你设置的 PostgreSQL 数据库?

标签: ruby postgresql heroku sinatra sequel


【解决方案1】:

looks like你可以运行

heroku pg:credentials DATABASE --app your-app-name

其中“DATABASE”的字面意思是“DATABASE”。获得凭据后,配置您的脚本以访问该数据库。

【讨论】:

猜你喜欢
  • 2012-08-22
  • 2021-03-23
  • 2016-12-23
  • 2018-07-05
  • 2020-06-14
  • 1970-01-01
  • 2015-01-28
  • 2015-08-14
  • 1970-01-01
相关资源
最近更新 更多