diff options
Diffstat (limited to 'lib/sisu/v2/db_drop.rb')
| -rw-r--r-- | lib/sisu/v2/db_drop.rb | 80 | 
1 files changed, 50 insertions, 30 deletions
| diff --git a/lib/sisu/v2/db_drop.rb b/lib/sisu/v2/db_drop.rb index 673c5f8f..7189da56 100644 --- a/lib/sisu/v2/db_drop.rb +++ b/lib/sisu/v2/db_drop.rb @@ -70,8 +70,8 @@ module SiSU_DB_drop          cascade='CASCADE'        end        @drop_table=[ -        "DROP TABLE metadata #{cascade};", -        "DROP TABLE documents #{cascade};", +        "DROP TABLE metadata_and_text #{cascade};", +        "DROP TABLE doc_objects #{cascade};",          "DROP TABLE urls #{cascade};",          "DROP TABLE endnotes #{cascade};",          "DROP TABLE endnotes_asterisk #{cascade};", @@ -84,15 +84,35 @@ module SiSU_DB_drop            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/ -            @conn.transaction -            @drop_table.each do |d| -              @conn.execute(d) -            end -            @conn.commit              puts msg_sqlite              ans=@ans.response?('remove sql database?') -            if ans and File.exist?(@db_info.sqlite.db) +            if ans \ +            and File.exist?(@db_info.sqlite.db) +              @conn.close                File.unlink(@db_info.sqlite.db) +              db=SiSU_Env::Info_db.new +              conn=db.sqlite.conn_sqlite3 +              sdb=SiSU_DB_DBI::Create.new(@opt,conn,@db_info,@sql_type) +              sdb_index=SiSU_DB_DBI::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::Info_error.new($!,$@,'-D').error; @sdb.output_dir? +              end +              exit +            else +              @conn.transaction +              @drop_table.each do |d| +                @conn.execute(d) +              end +              @conn.commit              end            else              @drop_table.each do |d| @@ -115,33 +135,33 @@ module SiSU_DB_drop        end        def indexes                                                             #% drop all indexes          #@conn.do(%{ -        #  DROP INDEX object_nr ON documents(ocn); -        #  DROP INDEX body ON documents(body); -        #  DROP INDEX clean ON documents(clean); -        #  DROP INDEX lev1 ON documents(lev1); -        #  DROP INDEX lev2 ON documents(lev2); -        #  DROP INDEX lev3 ON documents(lev3); -        #  DROP INDEX lev4 ON documents(lev4); -        #  DROP INDEX lev5 ON documents(lev5); -        #  DROP INDEX lev6 ON documents(lev6); +        #  DROP INDEX object_nr ON doc_objects(ocn); +        #  DROP INDEX body ON doc_objects(body); +        #  DROP INDEX clean ON doc_objects(clean); +        #  DROP INDEX lev1 ON doc_objects(lev1); +        #  DROP INDEX lev2 ON doc_objects(lev2); +        #  DROP INDEX lev3 ON doc_objects(lev3); +        #  DROP INDEX lev4 ON doc_objects(lev4); +        #  DROP INDEX lev5 ON doc_objects(lev5); +        #  DROP INDEX lev6 ON doc_objects(lev6);          #  DROP INDEX endnote_nr ON endnotes(nr);          #  DROP INDEX endnote ON endnotes(body); -        #  DROP INDEX title ON metadata(title); -        #  DROP INDEX filename ON metadata(filename) +        #  DROP INDEX title ON metadata_and_text(title); +        #  DROP INDEX filename ON metadata_and_text(filename)          #  /* -        #  DROP INDEX object_nr ON documents(ocn) CASCADE; -        #  DROP INDEX body ON documents(body) CASCADE; -        #  DROP INDEX clean ON documents(clean) CASCADE; -        #  DROP INDEX lev1 ON documents(lev1) CASCADE; -        #  DROP INDEX lev2 ON documents(lev2) CASCADE; -        #  DROP INDEX lev3 ON documents(lev3) CASCADE; -        #  DROP INDEX lev4 ON documents(lev4) CASCADE; -        #  DROP INDEX lev5 ON documents(lev5) CASCADE; -        #  DROP INDEX lev6 ON documents(lev6) CASCADE; +        #  DROP INDEX object_nr ON doc_objects(ocn) CASCADE; +        #  DROP INDEX body ON doc_objects(body) CASCADE; +        #  DROP INDEX clean ON doc_objects(clean) CASCADE; +        #  DROP INDEX lev1 ON doc_objects(lev1) CASCADE; +        #  DROP INDEX lev2 ON doc_objects(lev2) CASCADE; +        #  DROP INDEX lev3 ON doc_objects(lev3) CASCADE; +        #  DROP INDEX lev4 ON doc_objects(lev4) CASCADE; +        #  DROP INDEX lev5 ON doc_objects(lev5) CASCADE; +        #  DROP INDEX lev6 ON doc_objects(lev6) CASCADE;          #  DROP INDEX endnote_nr ON endnotes(nr) CASCADE;          #  DROP INDEX endnote ON endnotes(body) CASCADE; -        #  DROP INDEX title ON metadata(title) CASCADE; -        #  DROP INDEX filename ON metadata(filename) CASCADE +        #  DROP INDEX title ON metadata_and_text(title) CASCADE; +        #  DROP INDEX filename ON metadata_and_text(filename) CASCADE          #  */          #})        end | 
