2016-06-30 34 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。我感谢帮助! –