

# 升级 PostgreSQL 扩展
<a name="USER_UpgradeDBInstance.Upgrading.ExtensionUpgrades"></a>

将 Aurora PostgreSQL 数据库集群升级到新的主要或次要版本不会同时升级 PostgreSQL 扩展。对于大多数扩展，您可以在主要或次要版本升级完成后升级扩展。但是，在某些情况下，应在升级 Aurora PostgreSQL 数据库引擎之前升级扩展。有关更多信息，请参阅[测试将生产数据库集群升级到新的主要版本](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)中的[list of extensions to update](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#upgrade-extensions)。

安装 PostgreSQL 扩展需要具备 `rds_superuser` 权限。通常，`rds_superuser` 将对于特定扩展的权限委派给相关用户（角色），以便于管理给定扩展。这意味着，升级 Aurora PostgreSQL 数据库集群中所有扩展的任务可能涉及许多不同用户（角色）。如果要使用脚本自动执行升级过程，请尤其注意这一点。有关 PostgreSQL 权限和角色的更多信息，请参阅 [使用 Amazon Aurora PostgreSQL 实现高安全性](AuroraPostgreSQL.Security.md)。

**注意**  
有关更新 PostGIS 扩展的信息，请参阅[使用 PostGIS 扩展管理空间数据](Appendix.PostgreSQL.CommonDBATasks.PostGIS.md)（[步骤 6：升级 PostGIS 扩展](Appendix.PostgreSQL.CommonDBATasks.PostGIS.md#Appendix.PostgreSQL.CommonDBATasks.PostGIS.Update)）。  
要升级 `pg_repack` 扩展，先删除该扩展，然后在升级后的数据库实例中创建新版本。有关更多信息，请参阅 `pg_repack` 文档中的[安装 pg\$1repack](https://reorg.github.io/pg_repack/)。

要在引擎升级后更新扩展，请使用 `ALTER EXTENSION UPDATE` 命令。

```
ALTER EXTENSION extension_name UPDATE TO 'new_version';
```

要列出当前安装的扩展，请在以下命令中使用 PostgreSQL [pg\$1extension](https://www.postgresql.org/docs/current/catalog-pg-extension.html) 目录。

```
SELECT * FROM pg_extension;
```

要查看可用于安装的特定扩展版本的列表，请在以下命令中使用 PostgreSQL [pg\$1available\$1extension\$1versions](https://www.postgresql.org/docs/current/view-pg-available-extension-versions.html) 视图。

```
SELECT * FROM pg_available_extension_versions;
```