Class: SiSU_DbDrop::Drop
- Inherits:
-
Object
- Object
- SiSU_DbDrop::Drop
- Includes:
- SiSU_Response
- Defined in:
- lib/sisu/db_drop.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#base ⇒ Object
% drop base indexes.
- #conn_execute_array(sql_arr) ⇒ Object
- #drop ⇒ Object
- #indexes ⇒ Object
-
#initialize(opt, conn, db_info, sql_type) ⇒ Drop
constructor
A new instance of Drop.
-
#tables ⇒ Object
% drop all tables.
-
#text ⇒ Object
% drop TEXT indexes, sqlite.
Methods included from SiSU_Response
#answer?, #available_selections_, #query, #response?, #response_short, #response_strict, #selection_options, #selections_available_
Constructor Details
#initialize(opt, conn, db_info, sql_type) ⇒ Drop
Returns a new instance of Drop.
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/sisu/db_drop.rb', line 61 def initialize(opt,conn,db_info,sql_type) @opt,@conn,@db_info,@sql_type=opt,conn,db_info,sql_type case @sql_type when :sqlite cascade='' else cascade='CASCADE' end @drop_table=[ "DROP TABLE metadata_and_text #{cascade};", "DROP TABLE doc_objects #{cascade};", "DROP TABLE urls #{cascade};", "DROP TABLE endnotes #{cascade};", "DROP TABLE endnotes_asterisk #{cascade};", "DROP TABLE endnotes_plus #{cascade};", ] end |
Instance Method Details
#base ⇒ Object
% drop base indexes
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
# File 'lib/sisu/db_drop.rb', line 163 def base #% drop base indexes print "\n drop documents common indexes\n" unless @opt.act[:quiet][:set]==:on sql_arr=[ %{DROP INDEX idx_title;}, %{DROP INDEX idx_author;}, %{DROP INDEX idx_filename;}, %{DROP INDEX idx_topics;}, %{DROP INDEX idx_ocn;}, %{DROP INDEX idx_digest_clean;}, %{DROP INDEX idx_digest_all;}, %{DROP INDEX idx_lev0;}, %{DROP INDEX idx_lev1;}, %{DROP INDEX idx_lev2;}, %{DROP INDEX idx_lev3;}, %{DROP INDEX idx_lev4;}, %{DROP INDEX idx_lev5;}, %{DROP INDEX idx_lev6;}, %{DROP INDEX idx_endnote_nr;}, %{DROP INDEX idx_digest_en;}, %{DROP INDEX idx_endnote_nr_asterisk;}, %{DROP INDEX idx_endnote_asterisk;}, %{DROP INDEX idx_digest_en_asterisk;}, %{DROP INDEX idx_endnote_nr_plus;}, %{DROP INDEX idx_endnote_plus;}, %{DROP INDEX idx_digest_en_plus}, ] conn_execute_array(sql_arr) end |
#conn_execute_array(sql_arr) ⇒ Object
152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/sisu/db_drop.rb', line 152 def conn_execute_array(sql_arr) @conn.transaction do |conn| sql_arr.each do |sql| begin conn.exec_params(sql) rescue next end end end end |
#drop ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 |
# File 'lib/sisu/db_drop.rb', line 78 def drop def tables #% drop all tables begin msg_sqlite="as not all disk space is recovered after dropping the database << #{@db_info.sqlite.db} >>, you may be better off deleting the file, and recreating it as necessary" case @sql_type when :sqlite puts msg_sqlite ans=response?('remove sql database?') if ans \ and File.exist?(@db_info.sqlite.db) @conn.close File.unlink(@db_info.sqlite.db) db=SiSU_Env::InfoDb.new conn=db.sqlite.conn_sqlite3 sdb=SiSU_DbDBI::Create.new(@opt,conn,@db_info,@sql_type) sdb_index=SiSU_DbDBI::Index.new(@opt,conn,@db_info,@sql_type) sdb.output_dir? begin sdb.create_db sdb.create_table. sdb.create_table.doc_objects sdb.create_table.endnotes sdb.create_table.endnotes_asterisk sdb.create_table.endnotes_plus sdb.create_table.urls sdb_index.create_indexes rescue SiSU_Errors::Rescued.new($!,$@,'-D').location do __LINE__.to_s + ':' + __FILE__ end sdb.output_dir? end exit else @conn.transaction @drop_table.each do |d| begin @conn.exec_params(d) rescue next end end @conn.commit end when :pg @conn.transaction @drop_table.each do |d| begin @conn.exec_params(d) rescue next end end @conn.commit end rescue case @sql_type when :sqlite ans=response?('remove sql database?') if ans and File.exist?(@db_info.sqlite.db); File.unlink(@db_info.sqlite.db) end else @drop_table.each do |d| begin @conn.exec_params(d) rescue next end end end ensure end end def indexes def conn_execute_array(sql_arr) @conn.transaction do |conn| sql_arr.each do |sql| begin conn.exec_params(sql) rescue next end end end end def base #% drop base indexes print "\n drop documents common indexes\n" unless @opt.act[:quiet][:set]==:on sql_arr=[ %{DROP INDEX idx_title;}, %{DROP INDEX idx_author;}, %{DROP INDEX idx_filename;}, %{DROP INDEX idx_topics;}, %{DROP INDEX idx_ocn;}, %{DROP INDEX idx_digest_clean;}, %{DROP INDEX idx_digest_all;}, %{DROP INDEX idx_lev0;}, %{DROP INDEX idx_lev1;}, %{DROP INDEX idx_lev2;}, %{DROP INDEX idx_lev3;}, %{DROP INDEX idx_lev4;}, %{DROP INDEX idx_lev5;}, %{DROP INDEX idx_lev6;}, %{DROP INDEX idx_endnote_nr;}, %{DROP INDEX idx_digest_en;}, %{DROP INDEX idx_endnote_nr_asterisk;}, %{DROP INDEX idx_endnote_asterisk;}, %{DROP INDEX idx_digest_en_asterisk;}, %{DROP INDEX idx_endnote_nr_plus;}, %{DROP INDEX idx_endnote_plus;}, %{DROP INDEX idx_digest_en_plus}, ] conn_execute_array(sql_arr) end def text #% drop TEXT indexes, sqlite print "\n drop documents TEXT indexes\n" unless @opt.act[:quiet][:set]==:on sql_arr=[ %{DROP INDEX idx_clean;}, %{DROP INDEX idx_endnote}, ] conn_execute_array(sql_arr) end self end indexes.base @opt.act[:psql][:set]==:on ? '' : indexes.text self end |
#indexes ⇒ Object
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
# File 'lib/sisu/db_drop.rb', line 151 def indexes def conn_execute_array(sql_arr) @conn.transaction do |conn| sql_arr.each do |sql| begin conn.exec_params(sql) rescue next end end end end def base #% drop base indexes print "\n drop documents common indexes\n" unless @opt.act[:quiet][:set]==:on sql_arr=[ %{DROP INDEX idx_title;}, %{DROP INDEX idx_author;}, %{DROP INDEX idx_filename;}, %{DROP INDEX idx_topics;}, %{DROP INDEX idx_ocn;}, %{DROP INDEX idx_digest_clean;}, %{DROP INDEX idx_digest_all;}, %{DROP INDEX idx_lev0;}, %{DROP INDEX idx_lev1;}, %{DROP INDEX idx_lev2;}, %{DROP INDEX idx_lev3;}, %{DROP INDEX idx_lev4;}, %{DROP INDEX idx_lev5;}, %{DROP INDEX idx_lev6;}, %{DROP INDEX idx_endnote_nr;}, %{DROP INDEX idx_digest_en;}, %{DROP INDEX idx_endnote_nr_asterisk;}, %{DROP INDEX idx_endnote_asterisk;}, %{DROP INDEX idx_digest_en_asterisk;}, %{DROP INDEX idx_endnote_nr_plus;}, %{DROP INDEX idx_endnote_plus;}, %{DROP INDEX idx_digest_en_plus}, ] conn_execute_array(sql_arr) end def text #% drop TEXT indexes, sqlite print "\n drop documents TEXT indexes\n" unless @opt.act[:quiet][:set]==:on sql_arr=[ %{DROP INDEX idx_clean;}, %{DROP INDEX idx_endnote}, ] conn_execute_array(sql_arr) end self end |
#tables ⇒ Object
% drop all tables
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'lib/sisu/db_drop.rb', line 79 def tables #% drop all tables begin msg_sqlite="as not all disk space is recovered after dropping the database << #{@db_info.sqlite.db} >>, you may be better off deleting the file, and recreating it as necessary" case @sql_type when :sqlite puts msg_sqlite ans=response?('remove sql database?') if ans \ and File.exist?(@db_info.sqlite.db) @conn.close File.unlink(@db_info.sqlite.db) db=SiSU_Env::InfoDb.new conn=db.sqlite.conn_sqlite3 sdb=SiSU_DbDBI::Create.new(@opt,conn,@db_info,@sql_type) sdb_index=SiSU_DbDBI::Index.new(@opt,conn,@db_info,@sql_type) sdb.output_dir? begin sdb.create_db sdb.create_table. sdb.create_table.doc_objects sdb.create_table.endnotes sdb.create_table.endnotes_asterisk sdb.create_table.endnotes_plus sdb.create_table.urls sdb_index.create_indexes rescue SiSU_Errors::Rescued.new($!,$@,'-D').location do __LINE__.to_s + ':' + __FILE__ end sdb.output_dir? end exit else @conn.transaction @drop_table.each do |d| begin @conn.exec_params(d) rescue next end end @conn.commit end when :pg @conn.transaction @drop_table.each do |d| begin @conn.exec_params(d) rescue next end end @conn.commit end rescue case @sql_type when :sqlite ans=response?('remove sql database?') if ans and File.exist?(@db_info.sqlite.db); File.unlink(@db_info.sqlite.db) end else @drop_table.each do |d| begin @conn.exec_params(d) rescue next end end end ensure end end |
#text ⇒ Object
% drop TEXT indexes, sqlite
191 192 193 194 195 196 197 198 |
# File 'lib/sisu/db_drop.rb', line 191 def text #% drop TEXT indexes, sqlite print "\n drop documents TEXT indexes\n" unless @opt.act[:quiet][:set]==:on sql_arr=[ %{DROP INDEX idx_clean;}, %{DROP INDEX idx_endnote}, ] conn_execute_array(sql_arr) end |