Squashed 'projects/bad-nlp/name-database/' content from commit 46d2e01a
git-subtree-dir: projects/bad-nlp/name-database git-subtree-split: 46d2e01a4953b8f54e8625c9111cf5b372d80b49
This commit is contained in:
53
tasks/exporters/sqlite.rake
Normal file
53
tasks/exporters/sqlite.rake
Normal file
@@ -0,0 +1,53 @@
|
||||
require 'sequel'
|
||||
|
||||
task "export:sqlite" => [:db, "export:sqlite:schema"] do
|
||||
|
||||
#first insert the given_names
|
||||
@names = @output[:names]
|
||||
@meta = @output[:metadata]
|
||||
|
||||
puts "dumping given names"
|
||||
@db.given_names.each do |entry|
|
||||
row = @names.insert :name => entry.name, :type => "given"
|
||||
|
||||
entry.metadata_without_nesting.each do |key, value|
|
||||
@meta.insert :key => key, :value => value
|
||||
end
|
||||
end
|
||||
|
||||
# puts "dumping family names"
|
||||
# @db.family_names.each do |entry|
|
||||
# @names << {:name => entry.name, :type => "family"}
|
||||
# end
|
||||
|
||||
end
|
||||
|
||||
namespace "export:sqlite" do
|
||||
task :db => "out" do
|
||||
|
||||
existing = Dir["out/*.sqlite"].length
|
||||
path = "out/names#{(".#{existing}" if existing > 0)}.sqlite"
|
||||
|
||||
@output = Sequel.sqlite(path)
|
||||
end
|
||||
|
||||
task :schema => "export:sqlite:db" do
|
||||
|
||||
@output.create_table :names do
|
||||
primary_key :id
|
||||
String :name
|
||||
String :type
|
||||
|
||||
index [:type, :name]
|
||||
end
|
||||
|
||||
@output.create_table :metadata do
|
||||
foreign_key :name_id, :names
|
||||
String :key
|
||||
String :value
|
||||
|
||||
index [:name_id, :key]
|
||||
end
|
||||
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user