2021-05-07 11:10:39 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Gitlab
|
|
|
|
module Database
|
|
|
|
module RenameTableHelpers
|
|
|
|
def rename_table_safely(old_table_name, new_table_name)
|
2021-09-09 05:11:16 -04:00
|
|
|
transaction do
|
2021-05-07 11:10:39 -04: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 05:11:16 -04:00
|
|
|
transaction do
|
2021-05-07 11:10:39 -04: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 05:11:16 -04:00
|
|
|
transaction do
|
2021-05-07 11:10:39 -04: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 05:11:16 -04:00
|
|
|
transaction do
|
2021-05-07 11:10:39 -04:00
|
|
|
execute("CREATE VIEW #{old_table_name} AS SELECT * FROM #{new_table_name}")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|