Update db:dump and db:backup tasks for modern PostgreSQL#63
Open
paranoicsan wants to merge 1 commit into
Open
Conversation
- Rewrite pg_dump invocations using argument arrays with long flags and explicit `=` separators for compatibility with recent PostgreSQL versions - Pass database name via explicit `-d` flag instead of positional argument - Move backup path preparation (mkdir, timestamp) into Ruby using FileUtils and Time.now - Add post-run validation: fail with a clear message if pg_dump exits non-zero or the resulting file is missing/empty - Print the resulting file path and size on success Signed-off-by: Alexander Kuznetsov <paranoic.san@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pg_dumpinvocations indb:dumpanddb:backupusing argument arrays with long flags and explicit=separators — required for compatibility with recent PostgreSQL client versions, which became stricter about argument parsing.-dinstead of as a positional argument.mkdir, date/timestamp) from a shell heredoc into Ruby (FileUtils.mkdir_p,Time.now).pg_dumpexits non-zero or the resulting file is missing/empty. Print the resulting path and size on success.Test plan
bundle exec rubocop lib/tasks/db.rake— cleanrake db:backup— produced a non-empty dump under~/database_backups/<date>/rake db:dump— produced a non-emptydb/dump/content.dumprake db:pg_restore(left untouched in this PR) still works against the new dumps