From 17f122bfe54a95e30cd186b552ae0efd295f7aa3 Mon Sep 17 00:00:00 2001 From: Jakub Jirutka Date: Fri, 14 Apr 2023 17:16:42 +0200 Subject: [PATCH] Use psql instead of pg_restore when format is "plain" pg_restore: error: input file appears to be a text format dump. Please use psql. --- borgmatic/hooks/postgresql.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/borgmatic/hooks/postgresql.py b/borgmatic/hooks/postgresql.py index 0f1a2df..a64bb53 100644 --- a/borgmatic/hooks/postgresql.py +++ b/borgmatic/hooks/postgresql.py @@ -216,15 +216,17 @@ def restore_database_dump(database_config, log_prefix, location_config, dry_run, + (tuple(database['analyze_options'].split(' ')) if 'analyze_options' in database else ()) + ('--command', 'ANALYZE') ) + use_psql_command = all_databases or database.get('format') == 'plain' pg_restore_command = shlex.split(database.get('pg_restore_command') or 'pg_restore') restore_command = ( - tuple(psql_command if all_databases else pg_restore_command) + tuple(psql_command if use_psql_command else pg_restore_command) + ('--no-password',) + ( ('--no-psqlrc', '--set', 'ON_ERROR_STOP=on') - if all_databases - else ('--if-exists', '--exit-on-error', '--clean', '--dbname', database['name']) + if use_psql_command + else ('--if-exists', '--exit-on-error', '--clean') ) + + (('--dbname', database['name']) if not all_databases else ()) + (('--host', database['hostname']) if 'hostname' in database else ()) + (('--port', str(database['port'])) if 'port' in database else ()) + (('--username', database['username']) if 'username' in database else ())