の拡張機能は、 GanosBaseには、Alibaba Cloudが開発した拡張機能とPostGIS拡張機能が含まれます。 このトピックでは、拡張機能を更新する方法について説明します。
Alibaba Cloudが開発した拡張機能の更新 GanosBase
のインストール済み拡張機能を照会します。 GanosBase
PostgreSQL CLIを使用して、ApsaraDB RDS for PostgreSQLインスタンスに接続します。
次のSQL文を実行して、 GanosBase:
SELECT *, installed_version < default_version AS need_update FROM pg_available_extensions WHERE name LIKE 'ganos%';
サンプル出力:
name | default_version | installed_version | comment | need_update -------------------------------+-----------------+-------------------+--------------------------------------------------------------------------------------+------------- ganos_trajectory | 5.5 | 5.4 | Ganos trajectory extension for PostgreSQL | t ganos_pointcloud_geometry | 5.5 | 5.4 | Ganos_pointcloud LIDAR data and ganos_geometry data for PostgreSQL | t ganos_raster | 5.5 | 5.4 | Ganos raster extension for PostgreSQL | t ganos_networking | 5.5 | 5.4 | Ganos networking extension for PostgreSQL | t ganos_geometry_pyramid | 5.5 | 5.4 | Ganos Geometry Pyramid extension for PostgreSQL | t ganos_scene | 5.5 | 5.4 | Ganos scene extension for PostgreSQL | t ganos_geometry_topology | 5.5 | 5.4 | Ganos geometry topology spatial types and functions extension for PostgreSQL | t ganos_tiger_geocoder | 5.5 | 5.4 | Ganos tiger geocoder and reverse geocoder | t ganos_importer | 5.5 | 5.4 | Ganos Spatial importer extension for PostgreSQL | t ganos_vomesh | 5.5 | 5.4 | Ganos volumn mesh extension for PostgreSQL | t ...
パラメーター
説明
name
拡張機能の名前。
default_version
RDSインスタンスにインストールできる拡張機能のバージョン。
installed_version
RDSインスタンスにインストールされている拡張機能のバージョン。
comment
拡張機能の説明。
need_update
更新が必要かどうかを示します。
説明サンプル出力で、need_updateパラメーターの値がtの場合、更新が必要です。
Alibaba Cloudが開発した拡張機能の更新GanosBase
の拡張機能のバージョンが GanosBaseが3.1以降である場合は、次のステートメントを実行して、 GanosBase:
SELECT ganos_update();
の拡張機能のバージョンが GanosBaseは3.1よりも早く、すべての自己開発拡張機能を更新する関数を作成します。 ガノスベース 次のコードスニペットは例です。
CREATE OR REPLACE FUNCTION ganos_update() RETURNS text AS $$ DECLARE rec RECORD; sql text; BEGIN FOR rec IN SELECT extname FROM pg_extension WHERE extname like 'ganos_%' LOOP sql = 'ALTER EXTENSION ' || rec.extname || ' UPDATE '; RAISE NOTICE '%', sql; EXECUTE sql; END LOOP; return 'All Ganos extensions have updated to latest version'; END $$ LANGUAGE 'plpgsql' volatile STRICT;
PostGIS拡張の更新
インストールされているPostGIS拡張機能を照会します。
PostgreSQL CLIを使用してRDSインスタンスに接続します。
次のSQL文を実行して、インストールされているPostGIS拡張機能を照会します。
SELECT *, installed_version < default_version AS need_update FROM pg_available_extensions WHERE name LIKE 'postgis%';
サンプル出力:
name | default_version | installed_version | comment | need_update ------------------------+-----------------+-------------------+------------------------------------+------------- postgis | 3.3.2 | 3.1.4 | Ganos PostGIS+ | t postgis_tiger_geocoder | 3.3.2 | 3.1.4 | Ganos PostGIS+ tiger geocoder | t postgis_raster | 3.3.2 | 3.1.4 | PostGIS raster types and functions | t ...
パラメーター
説明
name
拡張機能の名前。
default_version
RDSインスタンスにインストールできる拡張機能のバージョン。
installed_version
RDSインスタンスにインストールされている拡張機能のバージョン。
comment
拡張機能の説明。
need_update
更新が必要かどうかを示します。
説明サンプル出力で、need_updateパラメーターの値がtの場合、更新が必要です。
PostGIS拡張機能の更新
PostGIS拡張機能を更新する方法は、RDSインスタンスのメジャーエンジンバージョンによって異なります。
次の操作は、単一のデータベースにのみ適用できます。 RDSインスタンスに複数のデータベースが含まれている場合、各データベースに対して次の操作を実行する必要があります。
RDSインスタンスがPostgreSQL 10、PostgreSQL 13、PostgreSQL 14、またはPostgreSQL 15を実行している場合、次の方法を使用してRDSインスタンスのPostGIS拡張機能を更新できます。
次のSQL文を実行します。
ALTER EXTENSION <Extension name> UPDATE;
説明上記のステートメントを実行して、各拡張機能を更新する必要があります。
PostGIS_Extensions_Upgrade関数を呼び出して、PostGIS拡張機能を更新することもできます。 詳細については、「PostGIS_Extensions_Upgrade」をご参照ください。
SELECT PostGIS_Extensions_Upgrade();
RDSインスタンスがPostgreSQL 11またはPostgreSQL 12を実行している場合、次の方法を使用してRDSインスタンスのPostGIS拡張機能を更新できます。
次のSQL文を実行します。
do $$ DECLARE with_pgis boolean; with_ganos boolean; BEGIN SELECT ((SELECT 1 FROM pg_extension WHERE extname='postgis') IS NOT null) INTO with_pgis; SELECT ((SELECT 1 FROM pg_extension WHERE extname='ganos_geometry') IS NOT null) INTO with_ganos; IF with_pgis AND with_ganos THEN PERFORM ganos_update(); ELSIF with_ganos THEN PERFORM ganos_update(); ELSIF with_pgis THEN PERFORM PostGIS_Extensions_Upgrade(); END IF; return 'PostGIS has update to ' || postgis_lib_version(); END $$ LANGUAGE 'plpgsql' ;