diff --git a/delivery.yaml b/delivery.yaml index d05d19a2..12ea76a7 100644 --- a/delivery.yaml +++ b/delivery.yaml @@ -3,7 +3,8 @@ allow_concurrent_steps: true build_env: &BUILD_ENV BASE_IMAGE: container-registry.zalando.net/library/ubuntu-22.04 - PGVERSION: 17 + PGVERSION: 18 + PGOLDVERSIONS: "16 17" MULTI_ARCH_REGISTRY: container-registry-test.zalando.net/acid pipeline: @@ -32,7 +33,7 @@ pipeline: docker buildx build --platform "linux/amd64,linux/arm64" \ --build-arg PGVERSION="$PGVERSION" \ --build-arg BASE_IMAGE="$BASE_IMAGE" \ - --build-arg PGOLDVERSIONS="14 15 16" \ + --build-arg PGOLDVERSIONS="$PGOLDVERSIONS" \ -t "$ECR_TEST_IMAGE" \ --push . @@ -61,7 +62,7 @@ pipeline: docker buildx build --platform "linux/amd64,linux/arm64" \ --build-arg PGVERSION="$PGVERSION" \ --build-arg BASE_IMAGE="$BASE_IMAGE" \ - --build-arg PGOLDVERSIONS="14 15 16" \ + --build-arg PGOLDVERSIONS="$PGOLDVERSIONS" \ -t "$ECR_TEST_IMAGE" \ --push . cdp-promote-image "$ECR_TEST_IMAGE" @@ -92,7 +93,7 @@ pipeline: docker buildx build --platform "linux/amd64,linux/arm64" \ --build-arg PGVERSION="$PGVERSION" \ --build-arg BASE_IMAGE="$BASE_IMAGE" \ - --build-arg PGOLDVERSIONS="14 15 16" \ + --build-arg PGOLDVERSIONS="$PGOLDVERSIONS" \ -t "$ECR_TEST_IMAGE" \ --push . cdp-promote-image "$ECR_TEST_IMAGE" diff --git a/postgres-appliance/Dockerfile b/postgres-appliance/Dockerfile index 94add7ff..6608483a 100644 --- a/postgres-appliance/Dockerfile +++ b/postgres-appliance/Dockerfile @@ -1,5 +1,5 @@ ARG BASE_IMAGE=ubuntu:22.04 -ARG PGVERSION=17 +ARG PGVERSION=18 ARG DEMO=false ARG COMPRESS=false ARG ADDITIONAL_LOCALES= @@ -46,7 +46,7 @@ ARG PGVERSION ARG TIMESCALEDB_APACHE_ONLY=true ARG TIMESCALEDB_TOOLKIT=true ARG COMPRESS -ARG PGOLDVERSIONS="13 14 15 16" +ARG PGOLDVERSIONS="14 15 16 17" ARG WITH_PERL=false ARG DEB_PG_SUPPORTED_VERSIONS="$PGOLDVERSIONS $PGVERSION" @@ -69,7 +69,7 @@ COPY --from=dependencies-builder /builddeps/wal-g /usr/local/bin/ COPY build_scripts/patroni.sh build_scripts/compress_build.sh /builddeps/ # Install patroni -ENV PATRONIVERSION=4.0.6 +ENV PATRONIVERSION=4.1.0 WORKDIR / diff --git a/postgres-appliance/bootstrap/maybe_pg_upgrade.py b/postgres-appliance/bootstrap/maybe_pg_upgrade.py index 4f36e695..9252d789 100644 --- a/postgres-appliance/bootstrap/maybe_pg_upgrade.py +++ b/postgres-appliance/bootstrap/maybe_pg_upgrade.py @@ -40,7 +40,7 @@ def perform_pitr(postgresql, cluster_version, bin_version, config): except Exception: logs = tail_postgres_logs() # Spilo has no other locales except en_EN.UTF-8, therefore we are safe here. - if int(cluster_version) >= 13 and 'recovery ended before configured recovery target was reached' in logs: + if 'recovery ended before configured recovery target was reached' in logs: # Starting from version 13 Postgres stopped promoting when recovery target wasn't reached. # In order to improve the user experience we reset all possible recovery targets and retry. recovery_conf = config[config['method']].get('recovery_conf', {}) @@ -103,7 +103,7 @@ def main(): except Exception as e: logger.error('Failed to update extensions: %r', e) - upgrade.analyze() + upgrade.analyze(bin_version) def call_maybe_pg_upgrade(): diff --git a/postgres-appliance/build_scripts/base.sh b/postgres-appliance/build_scripts/base.sh index fd54a3e3..bc4633d8 100644 --- a/postgres-appliance/build_scripts/base.sh +++ b/postgres-appliance/build_scripts/base.sh @@ -51,7 +51,7 @@ if [ "$WITH_PERL" != "true" ]; then equivs-build perl fi -curl -sL "https://github.com/zalando-pg/bg_mon/archive/$BG_MON_COMMIT.tar.gz" | tar xz +curl -sL "https://github.com/CyberDem0n/bg_mon/archive/$BG_MON_COMMIT.tar.gz" | tar xz curl -sL "https://github.com/zalando-pg/pg_auth_mon/archive/$PG_AUTH_MON_COMMIT.tar.gz" | tar xz curl -sL "https://github.com/zubkov-andrei/pg_profile/archive/$PG_PROFILE.tar.gz" | tar xz @@ -83,10 +83,8 @@ for version in $DEB_PG_SUPPORTED_VERSIONS; do "postgresql-${version}-pgaudit" "postgresql-${version}-pldebugger" "postgresql-${version}-pglogical" - "postgresql-${version}-pglogical-ticker" "postgresql-${version}-plpgsql-check" "postgresql-${version}-pg-checksums" - "postgresql-${version}-pgl-ddl-deploy" "postgresql-${version}-pgq-node" "postgresql-${version}-postgis-${POSTGIS_VERSION%.*}" "postgresql-${version}-postgis-${POSTGIS_VERSION%.*}-scripts" @@ -95,10 +93,12 @@ for version in $DEB_PG_SUPPORTED_VERSIONS; do "postgresql-${version}-decoderbufs" "postgresql-${version}-pllua" "postgresql-${version}-pgvector" - "postgresql-${version}-roaringbitmap") + "postgresql-${version}-roaringbitmap" + "postgresql-${version}-pgfaceting") - if [ "$version" -ge 14 ]; then - EXTRAS+=("postgresql-${version}-pgfaceting") + if [ "$version" != "18" ]; then + EXTRAS+=("postgresql-${version}-pgl-ddl-deploy" + "postgresql-${version}-pglogical-ticker") fi if [ "$WITH_PERL" = "true" ]; then diff --git a/postgres-appliance/major_upgrade/inplace_upgrade.py b/postgres-appliance/major_upgrade/inplace_upgrade.py index cad014d9..51c193bb 100644 --- a/postgres-appliance/major_upgrade/inplace_upgrade.py +++ b/postgres-appliance/major_upgrade/inplace_upgrade.py @@ -451,7 +451,7 @@ def restore_custom_statistics_target(self): except Exception: logger.error("Failed to execute '%s'", query) - def reanalyze(self): + def custom_stats_target_reanalyze(self): from patroni.postgresql.connection import get_connection_cursor if not self._statistics: @@ -470,12 +470,15 @@ def reanalyze(self): except Exception: logger.error("Failed to execute '%s'", query) + def full_reanalyze(self): + self.postgresql.analyze(self.desired_version) + def analyze(self): try: self.reset_custom_statistics_target() except Exception as e: logger.error('Failed to reset custom statistics targets: %r', e) - self.postgresql.analyze(True) + self.postgresql.analyze(self.desired_version, in_stages=True) try: self.restore_custom_statistics_target() except Exception as e: @@ -634,7 +637,10 @@ def do_upgrade(self): analyze_thread.join() - self.reanalyze() + if int(self.desired_version) < 18: + self.custom_stats_target_reanalyze() + else: + self.full_reanalyze() logger.info('Total upgrade time (with analyze): %s', time.time() - downtime_start) self.postgresql.bootstrap.call_post_bootstrap(self.config['bootstrap']) diff --git a/postgres-appliance/major_upgrade/pg_upgrade.py b/postgres-appliance/major_upgrade/pg_upgrade.py index ad1563e8..f3f05ea6 100644 --- a/postgres-appliance/major_upgrade/pg_upgrade.py +++ b/postgres-appliance/major_upgrade/pg_upgrade.py @@ -207,8 +207,9 @@ def prepare_new_pgdata(self, version): locale = self.query("SELECT datcollate FROM pg_database WHERE datname='template1';")[0][0] encoding = self.query('SHOW server_encoding')[0][0] initdb_config = [{'locale': locale}, {'encoding': encoding}] - if self.query("SELECT current_setting('data_checksums')::bool")[0][0]: - initdb_config.append('data-checksums') + checksums_enabled = self.query("SELECT current_setting('data_checksums')::bool")[0][0] + if checksums_enabled == (int(version) < 18): + initdb_config.append('data-checksums' if checksums_enabled else 'no-data-checksums') logger.info('initdb config: %s', initdb_config) @@ -268,9 +269,12 @@ def do_upgrade(self): return self.pg_upgrade() and self.restore_shared_preload_libraries()\ and self.switch_pgdata() and self.cleanup_old_pgdata() - def analyze(self, in_stages=False): - vacuumdb_args = ['--analyze-in-stages'] if in_stages else [] - logger.info('Rebuilding statistics (vacuumdb%s)', (' ' + vacuumdb_args[0] if in_stages else '')) + def analyze(self, version, in_stages=False): + vacuumdb_args = [] + if in_stages: + vacuumdb_args = ['--analyze-in-stages'] if int(version) < 18 else ['--analyze-in-stages', + '--missing-stats-only'] + logger.info('Rebuilding statistics (vacuumdb%s)', (' ' + ' '.join(vacuumdb_args) if in_stages else '')) if 'username' in self.config.superuser: vacuumdb_args += ['-U', self.config.superuser['username']] vacuumdb_args += ['-Z', '-j'] diff --git a/postgres-appliance/scripts/post_init.sh b/postgres-appliance/scripts/post_init.sh index c12e9c83..b1f8f325 100755 --- a/postgres-appliance/scripts/post_init.sh +++ b/postgres-appliance/scripts/post_init.sh @@ -139,16 +139,12 @@ CREATE TABLE IF NOT EXISTS public.postgres_log ( query_pos integer, location text, application_name text, + backend_type text, + leader_pid integer, + query_id bigint, CONSTRAINT postgres_log_check CHECK (false) NO INHERIT ); GRANT SELECT ON public.postgres_log TO admin;" -if [ "$PGVER" -ge 13 ]; then - echo "ALTER TABLE public.postgres_log ADD COLUMN IF NOT EXISTS backend_type text;" -fi -if [ "$PGVER" -ge 14 ]; then - echo "ALTER TABLE public.postgres_log ADD COLUMN IF NOT EXISTS leader_pid integer;" - echo "ALTER TABLE public.postgres_log ADD COLUMN IF NOT EXISTS query_id bigint;" -fi # Sunday could be 0 or 7 depending on the format, we just create both LOG_SHIP_HOURLY=$(echo "SELECT text(current_setting('log_rotation_age') = '1h')" | psql -tAX -d postgres 2> /dev/null | tail -n 1) diff --git a/postgres-appliance/scripts/spilo_commons.py b/postgres-appliance/scripts/spilo_commons.py index 0543bf77..981c9caa 100644 --- a/postgres-appliance/scripts/spilo_commons.py +++ b/postgres-appliance/scripts/spilo_commons.py @@ -12,13 +12,13 @@ # (min_version, max_version, shared_preload_libraries, extwlist.extensions) extensions = { - 'timescaledb': (9.6, 17, True, True), - 'pg_cron': (9.5, 17, True, False), - 'pg_stat_kcache': (9.4, 17, True, False), - 'pg_partman': (9.4, 17, False, True) + 'timescaledb': (9.6, 18, True, True), + 'pg_cron': (9.5, 18, True, False), + 'pg_stat_kcache': (9.4, 18, True, False), + 'pg_partman': (9.4, 18, False, True) } if os.environ.get('ENABLE_PG_MON') == 'true': - extensions['pg_mon'] = (11, 17, True, False) + extensions['pg_mon'] = (11, 18, True, False) def adjust_extensions(old, version, extwlist=False): diff --git a/postgres-appliance/tests/docker-compose.yml b/postgres-appliance/tests/docker-compose.yml index e8e7952e..3358f61a 100644 --- a/postgres-appliance/tests/docker-compose.yml +++ b/postgres-appliance/tests/docker-compose.yml @@ -50,7 +50,7 @@ services: postgresql: parameters: shared_buffers: 32MB - PGVERSION: '13' + PGVERSION: '14' # Just to test upgrade with clone. Without CLONE_SCOPE they don't work CLONE_WAL_S3_BUCKET: *bucket CLONE_AWS_ACCESS_KEY_ID: *access_key diff --git a/postgres-appliance/tests/test_spilo.sh b/postgres-appliance/tests/test_spilo.sh index 66100cbe..a68c86a7 100755 --- a/postgres-appliance/tests/test_spilo.sh +++ b/postgres-appliance/tests/test_spilo.sh @@ -124,15 +124,15 @@ function drop_timescaledb() { } function test_inplace_upgrade_wrong_version() { - docker_exec "$1" "PGVERSION=13 $UPGRADE_SCRIPT 3" 2>&1 | grep 'Upgrade is not required' + docker_exec "$1" "PGVERSION=14 $UPGRADE_SCRIPT 3" 2>&1 | grep 'Upgrade is not required' } function test_inplace_upgrade_wrong_capacity() { - docker_exec "$1" "PGVERSION=14 $UPGRADE_SCRIPT 4" 2>&1 | grep 'number of replicas does not match' + docker_exec "$1" "PGVERSION=15 $UPGRADE_SCRIPT 4" 2>&1 | grep 'number of replicas does not match' } -function test_successful_inplace_upgrade_to_14() { - docker_exec "$1" "PGVERSION=14 $UPGRADE_SCRIPT 3" +function test_successful_inplace_upgrade_to_15() { + docker_exec "$1" "PGVERSION=15 $UPGRADE_SCRIPT 3" } function test_envdir_suffix() { @@ -146,11 +146,7 @@ function test_envdir_updated_to_x() { } function test_failed_inplace_upgrade_big_replication_lag() { - ! test_successful_inplace_upgrade_to_14 "$1" -} - -function test_successful_inplace_upgrade_to_15() { - docker_exec "$1" "PGVERSION=15 $UPGRADE_SCRIPT 3" + ! test_successful_inplace_upgrade_to_15 "$1" } function test_successful_inplace_upgrade_to_16() { @@ -161,8 +157,12 @@ function test_successful_inplace_upgrade_to_17() { docker_exec "$1" "PGVERSION=17 $UPGRADE_SCRIPT 3" } -function test_pg_upgrade_to_17_check_failed() { - ! test_successful_inplace_upgrade_to_17 "$1" +function test_successful_inplace_upgrade_to_18() { + docker_exec "$1" "PGVERSION=18 $UPGRADE_SCRIPT 3" +} + +function test_pg_upgrade_to_18_check_failed() { + ! test_successful_inplace_upgrade_to_18 "$1" } function start_clone_with_walg_upgrade_container() { @@ -170,7 +170,7 @@ function start_clone_with_walg_upgrade_container() { docker-compose run \ -e SCOPE=upgrade \ - -e PGVERSION=14 \ + -e PGVERSION=15 \ -e CLONE_SCOPE=demo \ -e CLONE_METHOD=CLONE_WITH_WALG \ -e CLONE_TARGET_TIME="$(next_minute)" \ @@ -183,27 +183,27 @@ function start_clone_with_walg_upgrade_replica_container() { start_clone_with_walg_upgrade_container 2 } -function start_clone_with_walg_upgrade_to_17_container() { +function start_clone_with_walg_upgrade_to_18_container() { docker-compose run \ -e SCOPE=upgrade3 \ - -e PGVERSION=17 \ + -e PGVERSION=18 \ -e CLONE_SCOPE=demo \ - -e CLONE_PGVERSION=13 \ + -e CLONE_PGVERSION=14 \ -e CLONE_METHOD=CLONE_WITH_WALG \ -e CLONE_TARGET_TIME="$(next_minute)" \ --name "${PREFIX}upgrade4" \ -d "spilo3" } -function start_clone_with_walg_17_container() { +function start_clone_with_walg_18_container() { docker-compose run \ - -e SCOPE=clone16 \ - -e PGVERSION=17 \ + -e SCOPE=clone17 \ + -e PGVERSION=18 \ -e CLONE_SCOPE=upgrade3 \ - -e CLONE_PGVERSION=17 \ + -e CLONE_PGVERSION=18 \ -e CLONE_METHOD=CLONE_WITH_WALG \ -e CLONE_TARGET_TIME="$(next_hour)" \ - --name "${PREFIX}clone16" \ + --name "${PREFIX}clone17" \ -d "spilo3" } @@ -211,7 +211,7 @@ function start_clone_with_basebackup_upgrade_container() { local container=$1 docker-compose run \ -e SCOPE=upgrade2 \ - -e PGVERSION=15 \ + -e PGVERSION=16 \ -e CLONE_SCOPE=upgrade \ -e CLONE_METHOD=CLONE_WITH_BASEBACKUP \ -e CLONE_HOST="$(docker_exec "$container" "hostname --ip-address")" \ @@ -225,10 +225,10 @@ function start_clone_with_basebackup_upgrade_container() { function start_clone_with_hourly_log_rotation() { docker-compose run \ -e SCOPE=hourlylogs \ - -e PGVERSION=17 \ + -e PGVERSION=18 \ -e LOG_SHIP_HOURLY="true" \ -e CLONE_SCOPE=upgrade2 \ - -e CLONE_PGVERSION=15 \ + -e CLONE_PGVERSION=16 \ -e CLONE_METHOD=CLONE_WITH_WALG \ -e CLONE_TARGET_TIME="$(next_minute)" \ --name "${PREFIX}hourlylogs" \ @@ -260,18 +260,18 @@ function verify_hourly_log_rotation() { [ "$log_rotation_age" = "1h" ] && [ "$log_filename" = "postgresql-%u-%H.log" ] && [ "$postgres_log_ftables" -eq 192 ] && [ "$postgres_log_views" -eq 8 ] && [ "$postgres_failed_auth_views" -eq 200 ] } -# TEST SUITE 1 - In-place major upgrade 13->14->...->17 -# TEST SUITE 2 - Major upgrade 13->17 after wal-g clone (with CLONE_PGVERSION set) -# TEST SUITE 3 - PITR (clone with wal-g) with unreachable target (14+) -# TEST SUITE 4 - Major upgrade 13->14 after wal-g clone (no CLONE_PGVERSION) +# TEST SUITE 1 - In-place major upgrade 14->15->...->18 +# TEST SUITE 2 - Major upgrade 14->18 after wal-g clone (with CLONE_PGVERSION set) +# TEST SUITE 3 - PITR (clone with wal-g) with unreachable target (15+) +# TEST SUITE 4 - Major upgrade 14->15 after wal-g clone (no CLONE_PGVERSION) # TEST SUITE 5 - Replica bootstrap with wal-g -# TEST SUITE 6 - Major upgrade 14->15 after clone with basebackup +# TEST SUITE 6 - Major upgrade 15->16 after clone with basebackup # TEST SUITE 7 - Hourly log rotation function test_spilo() { # TEST SUITE 1 local container=$1 - run_test test_envdir_suffix "$container" 13 + run_test test_envdir_suffix "$container" 14 log_info "[TS1] Testing wrong upgrade setups" run_test test_inplace_upgrade_wrong_version "$container" @@ -288,66 +288,66 @@ function test_spilo() { # TEST SUITE 2 local upgrade3_container - upgrade3_container=$(start_clone_with_walg_upgrade_to_17_container) # SCOPE=upgrade3 PGVERSION=17 CLONE: _SCOPE=demo _PGVERSION=13 _TARGET_TIME= - log_info "[TS2] Started $upgrade3_container for testing major upgrade 13->17 after clone with wal-g" + upgrade3_container=$(start_clone_with_walg_upgrade_to_18_container) # SCOPE=upgrade3 PGVERSION=18 CLONE: _SCOPE=demo _PGVERSION=14 _TARGET_TIME= + log_info "[TS2] Started $upgrade3_container for testing major upgrade 14->18 after clone with wal-g" # TEST SUITE 4 local upgrade_container - upgrade_container=$(start_clone_with_walg_upgrade_container) # SCOPE=upgrade PGVERSION=14 CLONE: _SCOPE=demo _TARGET_TIME= - log_info "[TS4] Started $upgrade_container for testing major upgrade 13->14 after clone with wal-g" + upgrade_container=$(start_clone_with_walg_upgrade_container) # SCOPE=upgrade PGVERSION=15 CLONE: _SCOPE=demo _TARGET_TIME= + log_info "[TS4] Started $upgrade_container for testing major upgrade 14->15 after clone with wal-g" # TEST SUITE 1 # wait clone to finish and prevent timescale installation gets cloned find_leader "$upgrade3_container" find_leader "$upgrade_container" - create_timescaledb "$container" # we don't install it at the beginning, as we do 13->17 in a clone + create_timescaledb "$container" # we don't install it at the beginning, as we do 14->18 in a clone - log_info "[TS1] Testing in-place major upgrade 13->14" + log_info "[TS1] Testing in-place major upgrade 14->15" wait_zero_lag "$container" - run_test test_successful_inplace_upgrade_to_14 "$container" + run_test test_successful_inplace_upgrade_to_15 "$container" wait_all_streaming "$container" - run_test test_envdir_updated_to_x 14 + run_test test_envdir_updated_to_x 15 # TEST SUITE 2 - log_info "[TS2] Testing in-place major upgrade 13->17 after wal-g clone" - run_test verify_clone_upgrade "$upgrade3_container" "wal-g" 13 17 + log_info "[TS2] Testing in-place major upgrade 14->18 after wal-g clone" + run_test verify_clone_upgrade "$upgrade3_container" "wal-g" 14 18 run_test verify_archive_mode_is_on "$upgrade3_container" wait_backup "$upgrade3_container" # TEST SUITE 3 - local clone17_container - clone17_container=$(start_clone_with_walg_17_container) # SCOPE=clone17 CLONE: _SCOPE=upgrade3 _PGVERSION=17 _TARGET_TIME= - log_info "[TS3] Started $clone17_container for testing point-in-time recovery (clone with wal-g) with unreachable target on 14+" + local clone18_container + clone18_container=$(start_clone_with_walg_18_container) # SCOPE=clone18 CLONE: _SCOPE=upgrade3 _PGVERSION=18 _TARGET_TIME= + log_info "[TS3] Started $clone18_container for testing point-in-time recovery (clone with wal-g) with unreachable target on 15+" # TEST SUITE 1 - log_info "[TS1] Testing in-place major upgrade 14->15" - run_test test_successful_inplace_upgrade_to_15 "$container" + log_info "[TS1] Testing in-place major upgrade 15->16" + run_test test_successful_inplace_upgrade_to_16 "$container" wait_all_streaming "$container" - run_test test_envdir_updated_to_x 15 + run_test test_envdir_updated_to_x 16 # TEST SUITE 3 - find_leader "$clone17_container" - run_test verify_archive_mode_is_on "$clone17_container" + find_leader "$clone18_container" + run_test verify_archive_mode_is_on "$clone18_container" # TEST SUITE 1 wait_backup "$container" - log_info "[TS1] Testing in-place major upgrade to 15->16" - run_test test_successful_inplace_upgrade_to_16 "$container" + log_info "[TS1] Testing in-place major upgrade to 16->17" + run_test test_successful_inplace_upgrade_to_17 "$container" wait_all_streaming "$container" - run_test test_envdir_updated_to_x 16 + run_test test_envdir_updated_to_x 17 # TEST SUITE 4 - log_info "[TS4] Testing in-place major upgrade 13->14 after clone with wal-g" - run_test verify_clone_upgrade "$upgrade_container" "wal-g" 13 14 + log_info "[TS4] Testing in-place major upgrade 14->15 after clone with wal-g" + run_test verify_clone_upgrade "$upgrade_container" "wal-g" 14 15 run_test verify_archive_mode_is_on "$upgrade_container" wait_backup "$upgrade_container" @@ -361,20 +361,20 @@ function test_spilo() { # TEST SUITE 6 local basebackup_container - basebackup_container=$(start_clone_with_basebackup_upgrade_container "$upgrade_container") # SCOPE=upgrade2 PGVERSION=15 CLONE: _SCOPE=upgrade - log_info "[TS6] Started $basebackup_container for testing major upgrade 14->15 after clone with basebackup" + basebackup_container=$(start_clone_with_basebackup_upgrade_container "$upgrade_container") # SCOPE=upgrade2 PGVERSION=16 CLONE: _SCOPE=upgrade + log_info "[TS6] Started $basebackup_container for testing major upgrade 15->16 after clone with basebackup" wait_backup "$basebackup_container" # TEST SUITE 1 - # run_test test_pg_upgrade_to_17_check_failed "$container" # pg_upgrade --check complains about timescaledb + # run_test test_pg_upgrade_to_18_check_failed "$container" # pg_upgrade --check complains about timescaledb wait_backup "$container" - # drop_timescaledb "$container" - log_info "[TS1] Testing in-place major upgrade 16->17" - run_test test_successful_inplace_upgrade_to_17 "$container" + drop_timescaledb "$container" + log_info "[TS1] Testing in-place major upgrade 17->18" + run_test test_successful_inplace_upgrade_to_18 "$container" wait_all_streaming "$container" - run_test test_envdir_updated_to_x 17 + run_test test_envdir_updated_to_x 18 # TEST SUITE 5 @@ -387,8 +387,8 @@ function test_spilo() { log_info "[TS7] Started $hourlylogs_container for testing hourly log rotation" # TEST SUITE 6 - log_info "[TS6] Testing in-place major upgrade 14->15 after clone with basebackup" - run_test verify_clone_upgrade "$basebackup_container" "basebackup" 14 15 + log_info "[TS6] Testing in-place major upgrade 15->16 after clone with basebackup" + run_test verify_clone_upgrade "$basebackup_container" "basebackup" 15 16 run_test verify_archive_mode_is_on "$basebackup_container" # TEST SUITE 7