Files
kiss-vscode/projects/bad-nlp/name-database/tasks/exporters/sqlite.rake

53 lines
1.1 KiB
Ruby

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