2012-08-27 60 views
0

我成功地將我的Sinatra驅動的Ruby應用程序推送到Heroku。如何使用我的Sinatra驅動的Ruby應用程序將數據擦除到Heroku PostgreSQL數據庫

我推送的其中一個文件是一個Ruby腳本,該腳本會將網頁抓取並將數據放入PostgreSQL數據庫(這是非Sinatra數據庫)。

我爲Heroku應用程序設置了一個PostgreSQL插件,但是我沒有得到更多。

我想知道的是如何編輯scraping腳本(使用Sequel gem)將其刮擦的數據添加到Heroku PostgreSQL附加數據庫中。

我看了一下this tutorial就可以了,但是我被卡在第一步了。恐怕我不明白他們列出的命令提示語法。

此外,當我試圖遵循使用PGAdmin III的替代指令時,我遇到了另一個問題。 Heroku教程說:

作爲替代方案,您還可以使用PGAdmin GUI工具創建轉儲文件。爲此,請從對象瀏覽器中選擇一個數據庫,然後單擊工具>備份。將文件名設置爲data.dump,使用「COMPRESS」格式,(在「Dump Options#1」下)選擇不保存特權或表空間。

這裏的問題是我在PGAdmin中看不到「COMPRESS」格式。相反,我只是將文件「data.dump」保存爲「所有文件」類型,而沒有任何格式。

我不確定這是否正確,如果是,我下一步需要做什麼。

任何人都可以證實我在正確的道路上,如果是這樣,下一步我需要做什麼?

編輯:爲了澄清,我試圖讓我的刮腳本添加它的刮數據到Heroku應用程序的PostgreSQL數據庫。現在,它仍然被寫入,就好像它在我的本地計算機上一樣,被抓到我本地的PostgreSQL數據庫中。

+0

有點困惑,你是否想要安排腳本每隔一段時間運行一次(例如每天一次)來刮取源站點並向db中添加新數據,或者您想運行一次以將數據庫播種?如果前者,他們有像heroku調度程序的插件。如果是後者,讓你的刮板填充本地數據庫,那麼你應該能夠'heroku db:push'(至少在我上次使用Heroku的時候起作用) –

+0

@JoshuaCheek,對於混淆抱歉。我想我對此有點困惑。實際上,我想要做的就是讓腳本抓住我的Heroku應用程序的PostgreSQL數據庫。現在,我已經寫下了它之前我推動它。也就是說,它會擦到我本地的PostgreSQL數據庫。 – user1626730

+0

所以你的難處是如何讓腳本訪問Heroku爲你設置的PostgreSQL數據庫? –

回答

1

looks like可以運行

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

其中, 「數據庫」 的字面單詞 「數據庫」。獲得憑據後,配置腳本以訪問該數據庫。

+0

是的,那工作。我從命令提示符運行了該命令,並將該信息放入了Sequel的Postgres參數(http://sequel.rubyforge.org/rdoc/files/doc/opening_databases_rdoc.html) – user1626730

相關問題