Skip to content
代码片段 群组 项目
提交 c58c6bcf 编辑于 作者: Gabriel Mazetto's avatar Gabriel Mazetto
浏览文件

Improve backup and restore error handling

上级 34e5123e
No related branches found
No related tags found
无相关合并请求
# frozen_string_literal: true
module Gitlab
module Backup
module Cli
module Errors
class DatabaseRestoreError < StandardError
attr_reader :config, :db_file_name
def initialize(config, db_file_name)
@config = config
@db_file_name = db_file_name
super(build_message)
end
private
def build_message
"Failed to restore from database backup file '#{db_file_name}' \n" \
"- host: '#{config[:host]}' \n" \
"- port: '#{config[:port]}' \n" \
"- database: '#{config[:database]}'"
end
end
end
end
end
end
......@@ -73,7 +73,6 @@ def release_snapshot!
connection.rollback_transaction
@snapshot_id = nil
restore_timeouts!
end
def disable_timeouts!
......
......@@ -56,9 +56,10 @@ def dump(destination_dir)
Gitlab::Backup::Cli::Output.error "------ END ERRORS -------"
end
database.release_snapshot! if database.snapshot_id
raise Errors::DatabaseBackupError.new(database.connection_params, dump_file_name) unless status.success?
ensure
database.release_snapshot!
database.restore_timeouts!
end
end
......@@ -103,7 +104,9 @@ def restore(source)
Gitlab::Backup::Cli::Output.error "------ END ERRORS -------"
end
raise Gitlab::Backup::Cli::Error, 'Restore failed' unless status.success?
unless status.success?
raise Gitlab::Backup::Cli::Errors::DatabaseRestoreError.new(database.connection_params, db_file_name)
end
end
end
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册