ix(database-backup): drop bogus --single-transaction flag from pg_dump
pg_dump rejects `--single-transaction` — it's a pg_restore / psql flag, never a pg_dump one. Triggered as soon as the inline-dump path landed on Ralf's install: pg_dump: unrecognized option: single-transaction pg_dump: hint: Try "pg_dump --help" for more information. pg_dump already wraps the entire export in a single REPEATABLE READ snapshot automatically (since Postgres 9.x), so the original intent — consistent snapshot of the live DB — is preserved by removing the flag. Same "latent until Stage A wired it in" pattern as the three prior bugs this rollout has surfaced (PG insert destructure → bind- mount EACCES → Node 22 stdio strict mode → this).
This commit is contained in:
@@ -206,12 +206,20 @@ class DatabaseBackupService {
|
|||||||
'--format=plain',
|
'--format=plain',
|
||||||
'--encoding=UTF8'
|
'--encoding=UTF8'
|
||||||
];
|
];
|
||||||
|
|
||||||
// Add transaction support for consistency
|
// NOTE: do NOT add `--single-transaction` here. It looks like
|
||||||
if (!options.noTransaction) {
|
// the right flag for "consistent snapshot" but it isn't a pg_dump
|
||||||
pgDumpOptions.push('--single-transaction');
|
// option — it belongs to pg_restore / psql and pg_dump rejects it
|
||||||
}
|
// with `unrecognized option: single-transaction` (exit code 1).
|
||||||
|
// pg_dump already wraps the entire export in a single REPEATABLE
|
||||||
|
// READ snapshot automatically (since Postgres 9.x), so consistency
|
||||||
|
// is built in. If we ever need stricter cross-pg-cluster snapshot
|
||||||
|
// sharing, use `--snapshot=<id>` — but the typical inline-dump
|
||||||
|
// path doesn't need it. Bug went undetected until Stage A wired
|
||||||
|
// this code into the user-facing "Run Backup Now" path; prior
|
||||||
|
// callers (scheduled cron, dedicated admin DB-backup page) hit
|
||||||
|
// the same failure but on installs that had never exercised them.
|
||||||
|
|
||||||
// Add compression if not doing it separately
|
// Add compression if not doing it separately
|
||||||
if (options.compress && !options.separateCompression) {
|
if (options.compress && !options.separateCompression) {
|
||||||
pgDumpOptions.push('--compress=6');
|
pgDumpOptions.push('--compress=6');
|
||||||
|
|||||||
Reference in New Issue
Block a user