如何使用 postgis 将 AWS RDS Postgres 实例从 14 升级到 15?

问题描述 投票:0回答:2

AWS 添加了对 Postgres 15.2 的支持。在启用 postgis 扩展的情况下升级到此版本失败并显示此错误消息:

The instance could not be upgraded because there are one or more databases with an older version of PostGIS extension or its dependent extensions (address_standardizer, address_standardizer_data_us, postgis_tiger_geocoder, postgis_topology, postgis_raster) installed. Please upgrade all installations of PostGIS and drop its dependent extensions and try again.

RDS实例安装了postgis

3.1.7
,没有升级扩展的路径。运行精确的升级命令
ALTER EXTENSION postgis UPDATE TO "3.1.8";
导致

extension "postgis" has no update path from version "3.1.7" to version "3.1.8"

运行

SELECT postgis_extensions_upgrade();
命令应该升级扩展结果:

Upgrade completed, run SELECT postgis_full_version(); for details

,但是运行

SELECT postgis_full_version();
后的版本返回

POSTGIS="3.1.7 aafe1ff" [EXTENSION] PGSQL="140" GEOS="3.9.1-CAPI-1.14.2" PROJ="8.0.1" LIBXML="2.9.1" LIBJSON="0.15" LIBPROTOBUF="1.3.2" WAGYU="0.5.0 (Internal)"

postgis_raster
扩展已损坏,我们没有使用它,也没有使用任何其他 postgis 扩展。只有核心 postgis 扩展。

有没有办法将 RDS 实例升级到 postgres。 15 不删除 postgis 扩展?

postgresql amazon-web-services amazon-rds postgis
2个回答
2
投票

您可能只需要等待几天。 我今天受到这个确切问题的影响。几年前我在旧版本的 postgres 的 RDS 上发生了同样的问题。

据我所知,一段时间后 AWS 发布了一个新的 PostGIS 版本,然后我只需要运行您引用的命令。

注意:RDS 上的 PostgreSQL 15 是几天前的 2 月 28 日才宣布的。 https://aws.amazon.com/about-aws/whats-new/2023/02/amazon-rds-postgresql-major-version-15/


0
投票

不幸的是,似乎为了使用 postgis 将 AWS RDS Postgres 实例从 14 升级到 15,您需要在升级前删除 postgis 扩展及其依赖扩展。这是因为升级过程要求所有 PostGIS 安装都在同一版本上,包括依赖扩展。

以下是使用 postgis 将 AWS RDS Postgres 实例升级到版本 15 时可以遵循的步骤:

  1. 在开始升级之前备份您的 RDS 实例 过程。

  2. 使用 PostgreSQL 客户端连接到您的 RDS 实例,例如 作为 pgAdmin 或 psql.

  3. 运行以下命令删除postgis 扩展及其依赖扩展:

    DROP EXTENSION postgis CASCADE; DROP EXTENSION address_standardizer CASCADE; 删除扩展 address_standardizer_data_us CASCADE; 删除扩展 postgis_tiger_geocoder CASCADE; 删除扩展 postgis_topology CASCADE;

  4. 使用 AWS Management 将 RDS 实例升级到 Postgres 15.2 控制台或 AWS CLI。您可以找到有关如何操作的更多信息 这在 AWS 文档中。

  5. 升级完成后,运行以下命令进行安装 升级实例上的 postgis 扩展:

    创建扩展 postgis;

  6. 如果您使用任何依赖扩展,例如 address_standardizer, address_standardizer_data_us, postgis_tiger_geocoder 或 postgis_topology,您可以重新安装它们 现在使用 CREATE EXTENSION 命令。

重要的是要注意删除 postgis 扩展将从数据库中删除所有空间数据。因此,在继续升级之前,您应该确保备份所有空间数据并在升级完成后将其恢复。

© www.soinside.com 2019 - 2024. All rights reserved.