From d004875c53f756f9f09c69ef90b3484e23bc5760 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sat, 10 May 2008 01:42:14 -0400 Subject: some re-arrangement related to sqlite3 testing (including a rudimentary sql import file, dbi by-pass) --- lib/sisu/v0/db_import.rb | 55 ++++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 23 deletions(-) (limited to 'lib/sisu/v0/db_import.rb') diff --git a/lib/sisu/v0/db_import.rb b/lib/sisu/v0/db_import.rb index 646ea176..cb68ffd6 100644 --- a/lib/sisu/v0/db_import.rb +++ b/lib/sisu/v0/db_import.rb @@ -70,8 +70,8 @@ module SiSU_DB_import @@dl=nil @@hname=nil attr_accessor :tp - def initialize(opt,conn='',sql_type='pg') - @opt,@conn,@sql_type=opt,conn,sql_type + def initialize(opt,conn,file,sql_type='pg') + @opt,@conn,@file,@sql_type=opt,conn,file,sql_type @cX=SiSU_Screen::Ansi.new(@opt.cmd).cX @env=SiSU_Env::Info_env.new(@opt.fns) @dal="#{@env.path.dal}" @@ -113,17 +113,22 @@ module SiSU_DB_import tell.print_grey if @opt.cmd =~/v/ case @sql_type when /sqlite/ #fix logic for sqlite ! - import_db_metadata(@dal_array) - import_documents(@dal_array) - import_db_urls(@dal_array,@fnm) #import OID on/off - #@conn.commit #sqlite watch + #pf_db_import_transaction_open if @opt =~/M/ + db_import_metadata + db_import_documents(@dal_array) + db_import_urls(@dal_array,@fnm) #import OID on/off + #pf_db_import_transaction_close if @opt =~/M/ + #@conn.commit + #@conn.close + #@conn.disconnect +#sqlite watch else file_exist=@conn.select_one(%{ SELECT metadata.tid FROM metadata WHERE metadata.filename ~ '#{@opt.fns}'; }) unless file_exist @conn.execute('BEGIN') - import_db_metadata(@dal_array) - import_documents(@dal_array) - import_db_urls(@dal_array,@fnm) #import OID on/off + db_import_metadata + db_import_documents(@dal_array) + db_import_urls(@dal_array,@fnm) #import OID on/off @conn.execute('COMMIT') else @db=SiSU_Env::Info_db.new @@ -153,7 +158,11 @@ module SiSU_DB_import string.strip! end #% import into database tables - def import_db_metadata(dbi_unit) #% import documents - populate database + def pf_db_import_transaction_open + end + def pf_db_import_transaction_close + end + def db_import_metadata #% import documents - populate database print %{ #{@cX.grey}import documents dbi_unit #{@cX.off} } unless @opt.cmd =~/q/ @tp={} @md=SiSU_Param::Parameters.new(@opt).get @@ -354,17 +363,17 @@ module SiSU_DB_import #end #if @md.ruby_version; special_character_escape(@md.ruby_version) SiSU_DB_DBI::Test.new(self,@opt).verify #% import title names, filenames (tuple) - t=SiSU_DB_tuple::Load_metadata.new(@conn,@tp,@@id_t) + t=SiSU_DB_tuple::Load_metadata.new(@conn,@tp,@@id_t,@opt,@file) t.tuple end - def import_documents(dbi_unit) #% import documents - populate main database table + def db_import_documents(dal_array) #% import documents - populate main database table #% import into substantive database tables (tuple) begin @col[:tid]=@@id_t @en,@en_ast,@en_pls=[],[],[] @col[:en_a]=nil @col[:en_z]=nil - dbi_unit.each do |data| + dal_array.each do |data| #data.gsub!(/<[biu]>(.+?)<\/[biu]>/,'\1') # remove bold, italics, underscore data.gsub!(/(.+?)<\/b>/,'\1') # remove bold, italics, underscore data.gsub!(/(.+?)<\/i>/,'\1') # remove bold, italics, underscore @@ -396,7 +405,7 @@ module SiSU_DB_import end if @en_pls[0]; @en_a_plus,@en_z_plus=@en_pls[0].first,@en_pls[0].last end - t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt) + t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt,@file) t.tuple case @col[:lev] when /1/; @col[:lv1]+=1 @@ -437,7 +446,7 @@ module SiSU_DB_import end if @en_pls[0]; @en_a_plus,@en_z_plus=@en_pls[0].first,@en_pls[0].last end - t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt) + t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt,@file) t.tuple @col[:lev]=@col[:plaintext]=@col[:body]='' elsif data[/^5~(?:~\S+)?(.+?)<~(\d+);((?:\w|[0-6]:)\d+);(\w\d+)><([0-9a-f]{#{@@dl}}):([0-9a-f]{#{@@dl}})>/] # header lev5 seg level @@ -476,7 +485,7 @@ module SiSU_DB_import end if @en_pls[0]; @en_a_plus,@en_z_plus=@en_pls[0].first,@en_pls[0].last end - t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt) + t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt,@file) t.tuple @col[:lev]=@col[:plaintext]=@col[:body]='' elsif data[/^6~(?:~\S+)?(.+?)<~(\d+);((?:\w|[0-6]:)\d+);(\w\d+)><([0-9a-f]{#{@@dl}}):([0-9a-f]{#{@@dl}})>/] # header lev6 seg level @@ -515,7 +524,7 @@ module SiSU_DB_import end if @en_pls[0]; @en_a_plus,@en_z_plus=@en_pls[0].first,@en_pls[0].last end - t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt) + t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt,@file) t.tuple @col[:lev]=@col[:plaintext]=@col[:body]='' else #% regular text @@ -565,7 +574,7 @@ module SiSU_DB_import special_character_escape(@col[:body]) @col[:plaintext]=@col[:body].dup strip_markup(@col[:plaintext]) - t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt) + t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt,@file) t.tuple @en,@en_ast,@en_pls=[],[],[] @col[:en_a]=@col[:en_z]=nil @@ -604,7 +613,7 @@ module SiSU_DB_import :id_t => @@id_t, :hash => digest_clean } - t=SiSU_DB_tuple::Load_endnotes.new(@conn,en) + t=SiSU_DB_tuple::Load_endnotes.new(@conn,en,@opt,@file) t.tuple end end @@ -645,7 +654,7 @@ module SiSU_DB_import :id_t => @@id_t, :hash => digest_clean } - t=SiSU_DB_tuple::Load_endnotes.new(@conn,en) + t=SiSU_DB_tuple::Load_endnotes.new(@conn,en,@opt,@file) t.tuple end end @@ -685,7 +694,7 @@ module SiSU_DB_import :id_t => @@id_t, :hash => digest_clean } - t=SiSU_DB_tuple::Load_endnotes.new(@conn,en) + t=SiSU_DB_tuple::Load_endnotes.new(@conn,en,@opt,@file) t.tuple end end @@ -743,7 +752,7 @@ module SiSU_DB_import end self end - def import_db_urls(dbi_unit,meta) #% import documents OID - populate database + def db_import_urls(dbi_unit,meta) #% import documents OID - populate database begin @fnm=meta @env=SiSU_Env::Info_env.new(@opt.fns) @@ -818,7 +827,7 @@ module SiSU_DB_import or (@opt.cmd=~/e/ and FileTest.file?("#{out}/#@fnb/#{@opt.fns}.tgz")==true) f[:sisupod],u[:sisupod]='sisupod,', "'#{base}/#@fnb/#{@opt.fns}.tgz'," end - t=SiSU_DB_tuple::Load_urls.new(@conn,f,u,@@id_t) + t=SiSU_DB_tuple::Load_urls.new(@conn,f,u,@@id_t,@opt,@file) t.tuple rescue; SiSU_Errors::Info_error.new($!,$@,@opt.cmd,@opt.fns).error ensure -- cgit v1.2.3