diff --git a/src/onedb/2.9.80_to_2.9.85.rb b/src/onedb/2.9.80_to_2.9.85.rb index 5ff04ee1e8..83ff29e797 100644 --- a/src/onedb/2.9.80_to_2.9.85.rb +++ b/src/onedb/2.9.80_to_2.9.85.rb @@ -32,7 +32,10 @@ module Migrator # Image pool table: # CREATE TABLE image_pool (oid INTEGER PRIMARY KEY, name VARCHAR(256), body TEXT, uid INTEGER, gid INTEGER, public INTEGER, UNIQUE(name,uid) ); - @db.fetch("SELECT * FROM image_pool") do |row| + @db.run "ALTER TABLE image_pool RENAME TO old_image_pool;" + @db.run "CREATE TABLE image_pool (oid INTEGER PRIMARY KEY, name VARCHAR(256), body TEXT, uid INTEGER, gid INTEGER, public INTEGER, UNIQUE(name,uid) );" + + @db.fetch("SELECT * FROM old_image_pool") do |row| doc = Document.new(row[:body]) source = nil @@ -48,10 +51,17 @@ module Migrator size_elem = doc.root.add_element("SIZE") size_elem.text = size - @db[:image_pool].filter(:oid => row[:oid]).update( - :body => doc.root.to_s) + @db[:image_pool].insert( + :oid => row[:oid], + :name => row[:name], + :body => doc.root.to_s, + :uid => row[:uid], + :gid => row[:gid], + :public => row[:public]) end + @db.run "DROP TABLE old_image_pool;" + return true end end diff --git a/src/onedb/2.9.90_to_3.0.rb b/src/onedb/2.9.90_to_3.0.rb index 8692af3bfe..880685a74c 100644 --- a/src/onedb/2.9.90_to_3.0.rb +++ b/src/onedb/2.9.90_to_3.0.rb @@ -29,7 +29,11 @@ module Migrator # The tm_nfs driver has been renamed to tm_shared # CREATE TABLE host_pool (oid INTEGER PRIMARY KEY, name VARCHAR(256), body TEXT, state INTEGER, last_mon_time INTEGER, UNIQUE(name)); - @db.fetch("SELECT * FROM host_pool") do |row| + @db.run "ALTER TABLE host_pool RENAME TO old_host_pool;" + @db.run "CREATE TABLE host_pool (oid INTEGER PRIMARY KEY, name VARCHAR(256), body TEXT, state INTEGER, last_mon_time INTEGER, UNIQUE(name));" + @db.run "INSERT INTO host_pool SELECT * FROM old_host_pool;" + + @db.fetch("SELECT * FROM old_host_pool") do |row| doc = Document.new(row[:body]) source = nil @@ -43,6 +47,8 @@ module Migrator } end + @db.run "DROP TABLE old_host_pool;" + return true end end