guix-data-service/scripts/guix-data-service-backup-database
Christopher Baines d0eff9da5d Use the --no-comments option to pg_dump
Hopefully this will help with the pg_restore in the create-small-backup
script:

  pg_restore: [archiver (db)] Error while PROCESSING TOC:
  pg_restore: [archiver (db)] Error from TOC entry 2875; 0 0 COMMENT EXTENSION plpgsql
  pg_restore: [archiver (db)] could not execute query: ERROR:  must be owner of extension plpgsql
      Command was: COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
2020-03-25 20:47:53 +00:00

26 lines
748 B
Bash
Executable file

#!/bin/sh
set -eux
DATABASE_NAME=guix_data_service
DEFAULT_BACKUP_DIRECTORY="/var/lib/guix-data-service/dumps"
BACKUP_DIRECTORY="${GUIX_DATA_SERVICE_BACKUP_DIRECTORY:-$DEFAULT_BACKUP_DIRECTORY}"
DATE="$(date "+%Y-%m-%d")"
FULL_BACKUP_NAME="guix_data_service_full.dump"
TEMPORARY_FILE_NAME="${TMPDIR:-/tmp}/guix_data_service_full-$DATE.dump.tmp"
DESTINATION_FILE_NAME="$BACKUP_DIRECTORY/$DATE/$FULL_BACKUP_NAME"
renice 19 -p $$ || true
ionice -p $$ -c 3 || true
pg_dump --format=custom --compress=9 --serializable-deferrable \
--no-comments \
--username=guix_data_service \
--file="$TEMPORARY_FILE_NAME" \
"$DATABASE_NAME"
mkdir -p "$BACKUP_DIRECTORY/$DATE"
mv "$TEMPORARY_FILE_NAME" "$DESTINATION_FILE_NAME"