From 3f17c2383b457296314d42c109e23f3b6f57450b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= Date: Tue, 12 May 2015 12:52:05 +0200 Subject: [PATCH] Feature #3805: Insert new xml elems in onedb migrator --- src/onedb/local/4.11.80_to_4.13.80.rb | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/onedb/local/4.11.80_to_4.13.80.rb b/src/onedb/local/4.11.80_to_4.13.80.rb index 4cd929faf1..bce46e31e4 100644 --- a/src/onedb/local/4.11.80_to_4.13.80.rb +++ b/src/onedb/local/4.11.80_to_4.13.80.rb @@ -24,6 +24,42 @@ module Migrator end def up + + init_log_time() + + # 3805 + + @db.run "ALTER TABLE document_pool RENAME TO old_document_pool;" + @db.run "CREATE TABLE document_pool (oid INTEGER PRIMARY KEY, name VARCHAR(128), body MEDIUMTEXT, type INTEGER, uid INTEGER, gid INTEGER, owner_u INTEGER, group_u INTEGER, other_u INTEGER);" + + @db.transaction do + @db.fetch("SELECT * FROM old_document_pool") do |row| + doc = Nokogiri::XML(row[:body],nil,NOKOGIRI_ENCODING){|c| c.default_xml.noblanks} + + lock_elem = doc.create_element("LOCK") + lock_elem.add_child(doc.create_element("LOCKED")).content = "0" + lock_elem.add_child(doc.create_element("OWNER")).content = "" + lock_elem.add_child(doc.create_element("EXPIRES")).content = "0" + + doc.root.add_child(lock_elem) + + @db[:document_pool].insert( + :oid => row[:oid], + :name => row[:name], + :body => doc.root.to_s, + :type => row[:type], + :uid => row[:uid], + :gid => row[:gid], + :owner_u => row[:owner_u], + :group_u => row[:group_u], + :other_u => row[:other_u]) + end + end + + @db.run "DROP TABLE old_document_pool;" + + log_time() + return true end end \ No newline at end of file