FIX: don't break restore if function does not exist

This commit is contained in:
Régis Hanol 2018-07-30 22:11:38 +02:00
parent b852275ced
commit 8f1db615db

View File

@ -65,18 +65,22 @@ module BackupRestore
BackupRestore.move_tables_between_schemas("public", "backup")
# This is a temp fix to allow restores to work again. @tgxworld is
# current working on a fix that namespaces functions created by Discourse
# so that we can alter the schema of those functions before restoring.
# This is a temp fix to allow restores to work again.
# @tgxworld is currently working on a fix that namespaces functions
# created by Discourse so that we can alter the schema of those
# functions before restoring.
%w{
raise_email_logs_reply_key_readonly
raise_email_logs_skipped_reason_readonly
}.each do |function|
DB.exec(<<~SQL)
DROP FUNCTION IF EXISTS backup.#{function};
ALTER FUNCTION public.#{function}
SET SCHEMA "backup";
SQL
begin
DB.exec(<<~SQL)
DROP FUNCTION IF EXISTS backup.#{function};
ALTER FUNCTION public.#{function} SET SCHEMA "backup";
SQL
rescue PG::UndefinedFunction
# the function does not exist, no need to worry about this
end
end
@db_was_changed = true