From 049132377c3738a43414d802591d29e654800569 Mon Sep 17 00:00:00 2001 From: Dan Helfman Date: Wed, 3 Sep 2025 18:54:49 -0700 Subject: [PATCH] Add MariaDB dumps metadata. --- borgmatic/hooks/data_source/mariadb.py | 29 ++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/borgmatic/hooks/data_source/mariadb.py b/borgmatic/hooks/data_source/mariadb.py index b7770a42..ea8aa61b 100644 --- a/borgmatic/hooks/data_source/mariadb.py +++ b/borgmatic/hooks/data_source/mariadb.py @@ -257,11 +257,12 @@ def dump_data_sources( ''' dry_run_label = ' (dry run; not actually dumping anything)' if dry_run else '' processes = [] + dumps_metadata = [] logger.info(f'Dumping MariaDB databases{dry_run_label}') + dump_path = make_dump_path(borgmatic_runtime_directory) for database in databases: - dump_path = make_dump_path(borgmatic_runtime_directory) username = borgmatic.hooks.credential.parse.resolve_credential( database.get('username'), config, @@ -293,10 +294,19 @@ def dump_data_sources( raise ValueError('Cannot find any MariaDB databases to dump.') + if database['name'] == 'all' and database.get('format'): - for dump_name in dump_database_names: + for database_name in dump_database_names: + dumps_metadata.append( + borgmatic.actions.restore.Dump( + 'mariadb_databases', + database_name, + database.get('hostname'), + database.get('port'), + ) + ) renamed_database = copy.copy(database) - renamed_database['name'] = dump_name + renamed_database['name'] = database_name processes.append( execute_dump_command( renamed_database, @@ -304,13 +314,21 @@ def dump_data_sources( username, password, dump_path, - (dump_name,), + (database_name,), environment, dry_run, dry_run_label, ), ) else: + dumps_metadata.append( + borgmatic.actions.restore.Dump( + 'mariadb_databases', + database['name'], + database.get('hostname'), + database.get('port'), + ) + ) processes.append( execute_dump_command( database, @@ -326,6 +344,9 @@ def dump_data_sources( ) if not dry_run: + dump.write_data_source_dumps_metadata( + borgmatic_runtime_directory, 'mariadb_databases', dumps_metadata + ) patterns.append( borgmatic.borg.pattern.Pattern( os.path.join(borgmatic_runtime_directory, 'mariadb_databases'),