Fix error re-running some migrations if they get interrupted at the wrong moment (#17989)

This commit is contained in:
Claire 2022-04-07 20:17:49 +02:00 committed by GitHub
parent 465ee7792f
commit 5f0fc639da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -813,6 +813,9 @@ module Mastodon
def update_index(table_name, index_name, columns, **index_options) def update_index(table_name, index_name, columns, **index_options)
if index_name_exists?(table_name, "#{index_name}_new") && index_name_exists?(table_name, index_name) if index_name_exists?(table_name, "#{index_name}_new") && index_name_exists?(table_name, index_name)
remove_index table_name, "#{index_name}_new" remove_index table_name, "#{index_name}_new"
elsif index_name_exists?(table_name, "#{index_name}_new")
# Very unlikely case where the script has been interrupted during/after removal but before renaming
rename_index table_name, "#{index_name}_new", index_name
end end
begin begin