diff options
| author | Ralph Amissah <ralph@amissah.com> | 2009-08-29 23:55:44 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2009-08-29 23:56:38 -0400 | 
| commit | 1c07669d3798c1313612360719b8ca1cb559be62 (patch) | |
| tree | 68adddab2f992793f2e8999fc4b18d6f7ec84f7b /lib | |
| parent | sha256 for 0.71.3 (diff) | |
sql, fix, different solutions for postgresql and sqlite to populate database using ruby-dbisisu_0.71.4
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sisu/v1/db_drop.rb | 9 | ||||
| -rw-r--r-- | lib/sisu/v1/db_import.rb | 46 | ||||
| -rw-r--r-- | lib/sisu/v1/db_remove.rb | 2 | ||||
| -rw-r--r-- | lib/sisu/v1/sysenv.rb | 5 | 
4 files changed, 55 insertions, 7 deletions
| diff --git a/lib/sisu/v1/db_drop.rb b/lib/sisu/v1/db_drop.rb index bed179b7..258b31c1 100644 --- a/lib/sisu/v1/db_drop.rb +++ b/lib/sisu/v1/db_drop.rb @@ -95,7 +95,9 @@ module SiSU_DB_drop                File.unlink(@db_info.sqlite.db)              end            else -            @conn.do(@drop_table.join('')) +            @drop_table.each do |d| +              @conn.execute(d) +            end            end          rescue            case @sql_type @@ -105,7 +107,10 @@ module SiSU_DB_drop              if ans and File.exist?(@db_info.sqlite.db); File.unlink(@db_info.sqlite.db)              end            else -            @conn.do(@drop_table.join('')) +            @drop_table.each do |d| +              @conn.execute(d) +            end +            #@conn.do(@drop_table.join(''))            end          ensure            #commit diff --git a/lib/sisu/v1/db_import.rb b/lib/sisu/v1/db_import.rb index da564639..7268616b 100644 --- a/lib/sisu/v1/db_import.rb +++ b/lib/sisu/v1/db_import.rb @@ -138,14 +138,52 @@ module SiSU_DB_import            puts @conn.driver if defined? @conn.driver          end          begin -          @conn.transaction do |conn| -            t_d.each do |sql| -              conn.execute(sql) +          sql='' +          if @sql_type=~/sqlite/ +            @conn.transaction do |conn| +              t_d.each do |sql| +                conn.execute(sql) +              end              end +            #also 'execute' works for sqlite +            #@conn.execute("BEGIN") +            #  t_d.each do |sql| +            #    @conn.execute(sql) +            #  end +            #@conn.execute("COMMIT") +          else +            #'do' works for postgresql +            @conn.do("BEGIN") +              t_d.each do |sql| +                @conn.do(sql) +              end +            @conn.do("COMMIT") +          end +        rescue DBI::DatabaseError => e +          puts "Error code: #{e.err}" +          puts "Error message: #{e.errstr}" +          puts "Error SQLSTATE: #{e.state}" +          SiSU_Errors::Info_error.new($!,$@,@opt.cmd,@opt.fns).error +          sqlfn="#{@env.path.sql}/#{@md.fnb}.sql" +          sql=File.new(sqlfn,'w') +          t_d.each {|i| sql.puts i} +          p sqlfn +          if @opt.cmd =~/M/ +            puts sql +            p @conn.methods.sort +            puts "#{__FILE__}:#{__LINE__}"            end          rescue            SiSU_Errors::Info_error.new($!,$@,@opt.cmd,@opt.fns).error -          puts "#{__FILE__}:#{__LINE__}" if @opt.cmd =~/M/ +          sqlfn="#{@env.path.sql}/#{@md.fnb}.sql" +          sql=File.new(sqlfn,'w') +          t_d.each {|i| sql.puts i} +          p sqlfn +          if @opt.cmd =~/M/ +            puts sql +            p @conn.methods.sort +            puts "#{__FILE__}:#{__LINE__}" +          end          ensure            #@conn.execute("COMMIT")          end diff --git a/lib/sisu/v1/db_remove.rb b/lib/sisu/v1/db_remove.rb index bde5c891..e7ed70a8 100644 --- a/lib/sisu/v1/db_remove.rb +++ b/lib/sisu/v1/db_remove.rb @@ -99,7 +99,7 @@ module SiSU_DB_remove          end        else          tell=SiSU_Screen::Ansi.new(@opt.cmd,"no such file in database #{@db.psql.db}::#{@opt.fns}") -        tell.puts_grey #if @opt.cmd.include? ?v +        tell.puts_grey unless @opt.cmd =~/q/ #if @opt.cmd.include? ?v        end      end    end diff --git a/lib/sisu/v1/sysenv.rb b/lib/sisu/v1/sysenv.rb index 8d4636c1..8b15f957 100644 --- a/lib/sisu/v1/sysenv.rb +++ b/lib/sisu/v1/sysenv.rb @@ -1457,6 +1457,11 @@ WOK          end          processing        end +      def sql +        pth="#{processing}/sql" +        mkdir_p(pth) unless FileTest.directory?(pth) +        pth +      end        def composite_file          pth=path.dal  #"#{processing}/composite"          mkdir_p(pth) unless FileTest.directory?(pth) | 
