1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-22 18:50:08 +03:00

M #: Fix index creation on migrators (#4434)

This commit is contained in:
Christian González 2020-03-26 10:30:58 +01:00 committed by GitHub
parent 45f4362b28
commit 6b43d350d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 33 deletions

View File

@ -187,15 +187,4 @@ class OneDBBacKEnd
@db.run sql
end
def create_idx(type, version = nil)
schema = get_schema(type, version)
schema.each do |idx|
@db.run idx
end
end
end

View File

@ -38,12 +38,11 @@ module Migrator
def up
feature_2944
bug_2687 # MUST be run before 2489, which generates short body
bug_2687 # MUST be run before 2489, which generates short body
feature_2253
feature_2489_2671
feature_826
feature_2966
create_idxs #MUST be the last one
true
end
@ -275,18 +274,6 @@ module Migrator
return str_scaped
end
def is_fts_available()
if @db.adapter_scheme == :sqlite
return false
else
if @db.server_version >= 50600
return true
else
return false
end
end
end
def gen_short_body(body)
short_body = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
xml.VM{
@ -473,14 +460,6 @@ module Migrator
@db.run "DROP TABLE old_vm_pool;"
end
def create_idxs
if !is_fts_available
create_idx(:index_sqlite, db_version)
else
create_idx(:index_sql, db_version)
end
end
def feature_2966
@db.run "ALTER TABLE logdb ADD applied BOOLEAN DEFAULT 1;"
@db.run "UPDATE logdb SET applied = 0 WHERE timestamp = 0;"

View File

@ -186,6 +186,9 @@ class OneDB
puts "Database already uses version #{db_version[:local_version]}"
end
# Generate indexes
@backend.create_idx
timeb = Time.now
puts

View File

@ -413,6 +413,18 @@ class BackEndMySQL < OneDBBacKEnd
end
end
def create_idx(version = nil)
type = :index_sql
type = :index_sqlite unless @db.server_version >= 50600
schema = get_schema(type, version)
schema.each do |idx|
@db.run idx
end
end
private
def connect_db
@ -541,6 +553,16 @@ class BackEndSQLite < OneDBBacKEnd
puts "Sqlite database backup restored in #{@sqlite_file}"
end
def create_idx(version = nil)
type = :index_sqlite
schema = get_schema(type, version)
schema.each do |idx|
@db.run idx
end
end
private
def connect_db