fix(bootstrap): 全新主机没有 PostgreSQL 集群时不再因 pipefail 中止安装
This commit is contained in:
2 files changed
+7
-3
No files matched your search
+2
-1
@@ -3721,7 +3721,8 @@ check_postgres_major() {
|
|||||||
want="$(postgres_image_major)"
|
want="$(postgres_image_major)"
|
||||||
[ -n "$want" ] || die "cannot read a PostgreSQL major version from ${POSTGRES_IMAGE}"
|
[ -n "$want" ] || die "cannot read a PostgreSQL major version from ${POSTGRES_IMAGE}"
|
||||||
[ -f "${PG_DATA_DIR}/${want}/docker/PG_VERSION" ] && return 0
|
[ -f "${PG_DATA_DIR}/${want}/docker/PG_VERSION" ] && return 0
|
||||||
found="$(cat "$PG_DATA_DIR"/*/docker/PG_VERSION 2>/dev/null | tr -d '[:space:]')"
|
# A fresh host has no cluster: the glob matches nothing and cat fails the pipeline.
|
||||||
|
found="$(cat "$PG_DATA_DIR"/*/docker/PG_VERSION 2>/dev/null | tr -d '[:space:]')" || true
|
||||||
[ -z "$found" ] && return 0
|
[ -z "$found" ] && return 0
|
||||||
die "this release runs PostgreSQL ${want}, but ${PG_DATA_DIR} holds a PostgreSQL ${found} cluster.
|
die "this release runs PostgreSQL ${want}, but ${PG_DATA_DIR} holds a PostgreSQL ${found} cluster.
|
||||||
PostgreSQL ${want} would start an empty cluster beside it. A new major version is a dump
|
PostgreSQL ${want} would start an empty cluster beside it. A new major version is a dump
|
||||||
|
|||||||
@@ -2921,7 +2921,9 @@ run_major() { # data-dir
|
|||||||
die() { printf "DIE: %s\n" "$*"; exit 1; }
|
die() { printf "DIE: %s\n" "$*"; exit 1; }
|
||||||
'"$(bsfn postgres_image_major)"'
|
'"$(bsfn postgres_image_major)"'
|
||||||
'"$(bsfn check_postgres_major)"'
|
'"$(bsfn check_postgres_major)"'
|
||||||
check_postgres_major && echo STARTS' 2>&1
|
# A plain statement, as main calls it: on the left of && errexit is off inside the function.
|
||||||
|
check_postgres_major
|
||||||
|
echo STARTS' 2>&1
|
||||||
}
|
}
|
||||||
pmdir="$(mktemp -d)"
|
pmdir="$(mktemp -d)"
|
||||||
expect "an empty data directory starts" "STARTS" "$(run_major "$pmdir")"
|
expect "an empty data directory starts" "STARTS" "$(run_major "$pmdir")"
|
||||||
@@ -3155,7 +3157,8 @@ run_compare() { # host pod [pod-exit]
|
|||||||
host_pg_counts() { printf "%s\n" "$H"; }
|
host_pg_counts() { printf "%s\n" "$H"; }
|
||||||
pod_pg_counts() { printf "%s\n" "$P"; return "$PX"; }
|
pod_pg_counts() { printf "%s\n" "$P"; return "$PX"; }
|
||||||
'"$(bsfn compare_pg_counts)"'
|
'"$(bsfn compare_pg_counts)"'
|
||||||
compare_pg_counts && echo SAME' 2>&1
|
compare_pg_counts
|
||||||
|
echo SAME' 2>&1
|
||||||
}
|
}
|
||||||
counts="audit_logs 505${nl}servers 3${nl}users 17"
|
counts="audit_logs 505${nl}servers 3${nl}users 17"
|
||||||
expect "the same rows in every table pass" "SAME" "$(run_compare "$counts" "$counts")"
|
expect "the same rows in every table pass" "SAME" "$(run_compare "$counts" "$counts")"
|
||||||
|
|||||||
Reference in new issue
Block a user