mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
Bug #871: Avoid locked tables in onedb upgrade. Thanks to jan horacek <jahor@jhr.cz>
This commit is contained in:
parent
9ed5b738a4
commit
a61cd0bb0a
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user