Server IP : 192.168.23.10  /  Your IP : 13.58.221.124
Web Server : Apache
System : Linux echo.premieradvertising.com 5.14.0-362.8.1.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 7 14:54:22 EST 2023 x86_64
User : rrrallyteam ( 1049)
PHP Version : 8.1.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF
Directory (0555) :  /bin/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //bin/postgresql-upgrade
#!/usr/bin/bash

# postgresql-upgrade - one-hit shell command running initdb && pg_upgrade with
# preconfigured options to simplify the upgrade process.  This script has
# nothing to do with systemd services, for upgrading systemd postgresql services
# please use /usr/bin/postgresql-setup.

set -e


. "/usr/share/postgresql-setup/library.sh"

run_cmd ()
{
    echo >&2
    info "cmd: $(eval echo "$1")"
    echo >&2
    eval "$1"
}

run_cmd_args ()
{
    local space='' cmd=''
    for arg; do
        cmd+="$space$(printf %q "$arg")"
        space=' '
    done
    run_cmd "$cmd"
}

# We upgrade by default from system's default PostgreSQL installation
option_upgradefrom="postgresql"

# PostgreSQL data directory after upgrade.
option_datadir=

# For non-inplace upgrades.
option_datadir_old=

# use pg_upgrade --link?
option_hardlink=false

# ensure privacy
umask 0077

: "${RESTORECON=/sbin/restorecon}"
test -x "$RESTORECON" || RESTORECON=:

:

PGENGINE=/usr/bin

long_opts="\
upgrade-ids,\
upgrade-from:,\
version,usage,help"

USAGE_STRING="Usage: $0 [--upgrade-from=ID] DATADIR

Wrapper script for pg_upgrade.  It has pre-configured pg_upgrade options and
environment variables.

Options:
  --upgrade-ids              Print list of available IDs of upgrade scenarios to
                             standard output.
  --upgrade-from=ID          Specify id \"old\" postgresql stack to upgrade
                             from.  List of available IDs can be listed by
                             --upgrade-ids.  Default is '$option_upgradefrom'.

Other options:
  --help                     show this help
  --version                  show version of this package

Environment:
  PGSETUP_INITDB_OPTIONS     Options carried by this variable are passed to
                             subsequent call of \`initdb\` binary (see man
                             initdb(1)).  This variable is used also during
                             'upgrade' mode because the new cluster is actually
                             re-initialized from the old one.
  PGSETUP_PGUPGRADE_OPTIONS  Options in this variable are passed next to the
                             subsequent call of \`pg_upgrade\`.  For more info
                             about possible options please look at man
                             pg_upgrade(1)."

print_version()
{
    echo "postgresql-upgrade 8.6"
    echo "Built against PostgreSQL version 13.18."
}

args=$(getopt -o "" -l "$long_opts" -n "postgresql-setup" -- "$@")
eval set -- "$args"

while true; do
    case "$1" in
    --help|--usage)
        echo "$USAGE_STRING"
        exit 0
        ;;

    --upgrade-from)
        option_upgradefrom="$2"
        shift 2
        ;;

    --upgrade-ids)
        parse_upgrade_setup help
        exit 0
        ;;

    --version)
        print_version
        exit 0
        ;;

    --)
        shift
        break
        ;;

    *)
        die "author's fault: option $1 not handled"
        break
        ;;
    esac
done

test $# -eq 1 || die "exactly one DATADIR option required"
option_datadir=$(readlink -f "$1") || die "wrong datadir $1"

inplace=false
test -n "$option_datadir_old" || {
    option_datadir_old=${option_datadir}_old
    option_hardlink=:
    inplace=:
}

if ! parse_upgrade_setup config "$option_upgradefrom"; then
    die "bad --upgrade-from parameter '$option_upgradefrom'," \
        "try --upgrade-ids"
fi

version_file=$option_datadir/PG_VERSION

test -f "$version_file" || die "can't read '$version_file'"

old_data_version="$(cat "$version_file")"

if test "$old_data_version" != "$upgradefrom_major"; then
    error   "Cannot upgrade because the database in $option_datadir of"
    error_q "version $old_data_version but it should be $upgradefrom_major"
    exit 1
fi

if [ ! -x "$upgradefrom_engine/postgres" ]; then
    error "Please install the $upgradefrom_package package."
    exit 1
fi

# Check for data_directory entry in config file
# valid entry means that custom PGDATA path is present which is not supported
# BZ (#1935301)
conffile="$option_datadir/postgresql.conf"

test -r "$conffile" || {
    error "config file $conffile is not readable or does not exist"
    die "Old cluster in '$data' does not seem to be initialized"
}

sp='[[:space:]]'
sed_expr_pgdata="s/^$sp*data_directory$sp*=\(.*\)/\1/p"
conf_pgdata=`sed -n "$sed_expr_pgdata" $conffile | tail -1`

test -n "$conf_pgdata" && {
    error   $"data_directory field in configuration file ($conffile) is not supported."
    error_q $"db datadir (PGDATA) cannot be specified in the configuration file."
    error_q $"In order to use this script for upgrade, please, move the files"
    error_q $"to the default location first and remove data_directory entry from"
    error_q $"configuration file."

    exit 1
}

exit_handler_revert_datadir=false

exit_handler ()
{
    exit_status=$?

    ! $exit_handler_revert_datadir || {
        info "restoring previous datadir"
        rm -rf "$option_datadir"
        mv "$option_datadir_old" "$option_datadir"
    }

    exit $exit_status
}

trap exit_handler EXIT

if $inplace; then
    ! test -e "$option_datadir_old" || die "$option_datadir_old already exists"
    mv "$option_datadir" "$option_datadir_old"
    exit_handler_revert_datadir=:
fi

test -e "$option_datadir" || mkdir "$option_datadir"
$RESTORECON "$option_datadir"

initdbcmd="\"\$PGENGINE\"/initdb --pgdata=\"\$option_datadir\" --auth=ident $PGSETUP_INITDB_OPTIONS"
run_cmd "$initdbcmd"

test -n "$option_workdir" || {
    option_workdir=$(mktemp -d "/tmp/postgresql_upgrade_XXXXXX")
    info "logs are stored in $option_workdir"
}
cd "$option_workdir"

set -- "$PGENGINE"/pg_upgrade \
        --old-bindir="$upgradefrom_engine" \
        --new-bindir="$PGENGINE" \
        --old-datadir="$option_datadir_old" \
        --new-datadir="$option_datadir"

$option_hardlink && set -- "$@" --link

test -n "$PGSETUP_PGUPGRADE_OPTIONS" && eval 'set -- "$@" '"$PGSETUP_PGUPGRADE_OPTIONS"

run_cmd_args "$@"
exit_handler_revert_datadir=false
info "old data directory and configuration is in $option_datadir_old"