2016-06-30 123 views
0

我正在嘗試編寫一個簡單的Ruby/Nokogiri刮板來從多個頁面獲取事件信息,然後將其輸出到附加到每週發送的電子郵件的CSV中。適用於Ruby的簡單本地數據庫解決方案?

我已經完成了抓取組件和CSV組件,它的工作完美。但是,現在我意識到我需要知道何時添加新事件,這意味着我需要某種數據庫。理想情況下,我只是將其存儲在本地。

我已經涉足了使用紅寶石'續集',但數據似乎並沒有超出程序的運行持續。我是否需要下載一些數據庫軟件來處理'續集'?另外我沒有使用Rails框架,只是Ruby。

任何和所有的指導深表感謝!

+1

您的駐留機器上是否安裝了RDBMS以允許您保存數據? – MageeWorld

+0

在放棄Sequel之前,你需要做的不僅僅是「涉獵」。如果數據不是持久的,那是因爲您正在使用內存中的SQLite數據庫。雖然它們對於某些任務非常有用,但持久數據庫通常不是其中的一個。相反,看看在磁盤上使用SQLite,或PostgreSQL,MySQL或其他任何你有的[Sequel支持](http://sequel.jeremyevans.net/rdoc-adapters/index.html)。它非常有能力。 http://sequel.jeremyevans.net/rdoc/files/README_rdoc.html#label-Connecting+to+a+database描述瞭如何使用磁盤上的SQLite數據庫。 –

+0

你是絕對正確的@錫人。那個鏈接非常有幫助!非常感謝! –

回答

3

我猜你做過Sequel.sqlite,就像Sequel自述文件中的第一個例子,它創建了一個內存中的SQLite數據庫。要創建文件系統,而不是內存的數據庫,只是把它傳遞的路徑,例如:

Sequel.sqlite("./my-database.db") 

這是當然,假設你已經安裝了sqlite3的寶石。如果給定的文件不存在,它將被創建。

這是covered in the Sequel docs

+0

當然啊!我正在關注Sequel自述文件中的例子,並沒有意識到,當它說內存時,它會在程序結束運行時被銷燬。非常感謝@Jordan。我感謝幫助! –