時(shí)空引擎插件升級
Ganos時(shí)空引擎插件包括阿里云自研Ganos插件和PostGIS插件。本文介紹這些插件的升級方法。
您可以加入RDS PostgreSQL插件交流釘釘群(103525002795),進(jìn)行咨詢、交流和反饋,獲取更多關(guān)于插件的信息。
Ganos插件升級
查詢已安裝的Ganos插件
使用PostgreSQL命令行工具連接數(shù)據(jù)庫。
執(zhí)行如下SQL查詢當(dāng)前已安裝的Ganos插件。
SELECT *, installed_version < default_version AS need_update FROM pg_available_extensions WHERE name LIKE 'ganos%';
結(jié)果示例:
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 ...
查詢結(jié)果
說明
name
插件名稱。
default_version
當(dāng)前數(shù)據(jù)庫可安裝的版本。
installed_version
目前安裝的版本。
comment
插件描述。
need_update
是否需要升級。
說明查詢結(jié)果中,need_update為t時(shí),表示需要升級。
升級Ganos插件
如果您的Ganos插件版本大于等于3.1,請使用如下語句對全部Ganos插件進(jìn)行升級。
SELECT ganos_update();
如果您的Ganos插件版本小于3.1,請參考如下命令,手動創(chuàng)建函數(shù)對全部Ganos插件進(jìn)行升級。
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命令行工具連接數(shù)據(jù)庫。
執(zhí)行如下SQL查詢當(dāng)前已安裝的PostGIS插件。
SELECT *, installed_version < default_version AS need_update FROM pg_available_extensions WHERE name LIKE 'postgis%';
結(jié)果示例:
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 ...
查詢結(jié)果
說明
name
插件名稱。
default_version
當(dāng)前數(shù)據(jù)庫可安裝的版本。
installed_version
目前安裝的版本。
comment
插件描述。
need_update
是否需要升級。
說明查詢結(jié)果中,need_update為t時(shí),表示需要升級。
升級PostGIS插件
PostGIS插件根據(jù)RDS PostgreSQL實(shí)例大版本不同,升級方法不同。
以下操作只針對單個(gè)數(shù)據(jù)庫有效,如果實(shí)例中存在多個(gè)數(shù)據(jù)庫,需要對每個(gè)數(shù)據(jù)庫均執(zhí)行以下操作。
如果RDS PostgreSQL實(shí)例大版本為PostgreSQL 10、13、14或15,升級方法如下:
執(zhí)行如下SQL升級PostGIS插件版本。
ALTER EXTENSION <插件名> UPDATE;
說明每一個(gè)插件都需要單獨(dú)執(zhí)行上述語句進(jìn)行升級操作。
您也可以通過執(zhí)行PostGIS_Extensions_Upgrade函數(shù)對插件進(jìn)行升級。更多信息,請參見PostGIS_Extensions_Upgrade。
SELECT PostGIS_Extensions_Upgrade();
如果RDS PostgreSQL實(shí)例大版本為PostgreSQL 11、12,升級方法如下:
執(zhí)行如下SQL升級PostGIS插件版本。
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' ;