【发布时间】: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