File: pg_dumpcluster

package info (click to toggle)
postgresql-common 282
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,528 kB
  • sloc: perl: 4,170; sh: 1,572; makefile: 327; sql: 13; ansic: 10
file content (25 lines) | stat: -rwxr-xr-x 841 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash

# `pg_dumpall|psql` pipeline called from `pg_upgradecluster -m dump`

set -eu
set -o pipefail # needs dash >= 0.5.12-7

# all these options are mandatory
while getopts "A:h:H:p:P:Q:U:" opt ; do
    case $opt in
        A) PG_DUMPALL="$OPTARG" ;;
        h) OLDHOST="$OPTARG" ;;
        H) NEWHOST="$OPTARG" ;;
        p) OLDPORT="$OPTARG" ;;
        P) NEWPORT="$OPTARG" ;;
        Q) PSQL="$OPTARG" ;;
        U) NEWUSER="$OPTARG" ;;
        *) exit 5 ;;
    esac
done

"$PG_DUMPALL" --quote-all-identifiers -h "$OLDHOST" -p "$OLDPORT" |
    LC_ALL=C grep --text -v "^CREATE ROLE \"$NEWUSER\";$" | # force text mode; avoid error on existing role
    "$PSQL" --no-psqlrc --echo-queries --output /dev/null -vON_ERROR_STOP=on -h "$NEWHOST" -p "$NEWPORT" postgres |
    cut -c 1-${COLUMNS:-80} # avoid overly long output (lowrite)