diff options
Diffstat (limited to 'lib/sisu/current/db_drop.rb')
-rw-r--r-- | lib/sisu/current/db_drop.rb | 207 |
1 files changed, 0 insertions, 207 deletions
diff --git a/lib/sisu/current/db_drop.rb b/lib/sisu/current/db_drop.rb deleted file mode 100644 index b90a81e5..00000000 --- a/lib/sisu/current/db_drop.rb +++ /dev/null @@ -1,207 +0,0 @@ -# encoding: utf-8 -=begin - -* Name: SiSU - -** Description: documents, structuring, processing, publishing, search -*** modules shared by the different db types, dbi, postgresql, sqlite - -** Author: Ralph Amissah - <ralph@amissah.com> - <ralph.amissah@gmail.com> - -** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah, - All Rights Reserved. - -** License: GPL 3 or later: - - SiSU, a framework for document structuring, publishing and search - - Copyright (C) Ralph Amissah - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation, either version 3 of the License, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program. If not, see <http://www.gnu.org/licenses/>. - - If you have Internet connection, the latest version of the GPL should be - available at these locations: - <http://www.fsf.org/licensing/licenses/gpl.html> - <http://www.gnu.org/licenses/gpl.html> - - <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html> - -** SiSU uses: - * Standard SiSU markup syntax, - * Standard SiSU meta-markup syntax, and the - * Standard SiSU object citation numbering and system - -** Hompages: - <http://www.jus.uio.no/sisu> - <http://www.sisudoc.org> - -** Git - <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary> - <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/current/db_drop.rb;hb=HEAD> - -=end -module SiSU_DbDrop - require_relative 'utils_response' # utils_response.rb - class Drop - include SiSU_Response - 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 - 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.metadata_and_text - 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 - end -end -__END__ |