2021-05-07 15:10:39 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Gitlab
|
|
|
|
module Database
|
|
|
|
module RenameTableHelpers
|
|
|
|
def rename_table_safely(old_table_name, new_table_name)
|
2021-09-09 09:11:16 +00:00
|
|
|
transaction do
|
2021-05-07 15:10:39 +00:00
|
|
|
rename_table(old_table_name, new_table_name)
|
|
|
|
execute("CREATE VIEW #{old_table_name} AS SELECT * FROM #{new_table_name}")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def undo_rename_table_safely(old_table_name, new_table_name)
|
2021-09-09 09:11:16 +00:00
|
|
|
transaction do
|
2021-05-07 15:10:39 +00:00
|
|
|
execute("DROP VIEW IF EXISTS #{old_table_name}")
|
|
|
|
rename_table(new_table_name, old_table_name)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def finalize_table_rename(old_table_name, new_table_name)
|
2021-09-09 09:11:16 +00:00
|
|
|
transaction do
|
2021-05-07 15:10:39 +00:00
|
|
|
execute("DROP VIEW IF EXISTS #{old_table_name}")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def undo_finalize_table_rename(old_table_name, new_table_name)
|
2021-09-09 09:11:16 +00:00
|
|
|
transaction do
|
2021-05-07 15:10:39 +00:00
|
|
|
execute("CREATE VIEW #{old_table_name} AS SELECT * FROM #{new_table_name}")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|