找不到scraperwiki.sqlite的表格

时间:2014-09-09 19:05:22

标签: ruby sqlite gem scraperwiki

我在Ruby中有一个使用scraperwiki gem的脚本。在此脚本的目录中,有一个标题为scraperwiki.sqlite的文件。

items.each do |x|
   if ScraperWiki.select("* from data where .... { x['key123']}'").empty? 
     ScraperWiki.save_sqlite(['key123'], x)
   else
    puts "Skipping already saved record " + record['key123']
   end
end

但是当我运行它时,我收到一个错误:

/Users/alex/.rvm/gems/ruby-2.1.2/gems/sqlite_magic-0.0.3/lib/sqlite_magic.rb:49:in `rescue in execute': no such table: data (SqliteMagic::NoSuchTable)
  from /Users/alex/.rvm/gems/ruby-2.1.2/gems/sqlite_magic-0.0.3/lib/sqlite_magic.rb:42:in `execute'
  from /Users/alex/.rvm/gems/ruby-2.1.2/gems/scraperwiki-3.0.2/lib/scraperwiki.rb:186:in `select'

1 个答案:

答案 0 :(得分:1)

两件事:

  1. 在您保存一些数据之前,ScraperWiki gem不会创建数据(实际为swdata)表
  2. 保存一些数据后,该表似乎被称为swdata,而不是data
  3. 注意swdata是默认值,但您可以使用参数/配置变量将table_name更改为data

    另请注意:此创建保存(非查询)不一定是ScraperWiki的宝石的一部分,而是它https://github.com/openc/sqlite_magic的依赖方式。要查看自己,请查看https://github.com/openc/sqlite_magic/blob/master/lib/sqlite_magic.rb处的代码,了解#create_table仅来自#insert_or_update#save_data

    的方法