GanosBase時空引擎外掛程式包括阿里雲自研GanosBase外掛程式和PostGIS外掛程式。本文介紹這些外掛程式的升級方法。
GanosBase外掛程式升級
查詢已安裝的GanosBase外掛程式
使用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
當前資料庫可安裝的版本。
installed_version
目前安裝的版本。
comment
外掛程式描述。
need_update
是否需要升級。
說明查詢結果中,need_update為t時,表示需要升級。
升級GanosBase外掛程式
如果您的GanosBase外掛程式版本大於等於3.1,請使用如下語句對全部GanosBase外掛程式進行升級。
SELECT ganos_update();
如果您的GanosBase外掛程式版本小於3.1,請參考如下命令,手動建立函數對全部GanosBase外掛程式進行升級。
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命令列工具串連資料庫。
執行如下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
當前資料庫可安裝的版本。
installed_version
目前安裝的版本。
comment
外掛程式描述。
need_update
是否需要升級。
說明查詢結果中,need_update為t時,表示需要升級。
升級PostGIS外掛程式
PostGIS外掛程式根據RDS PostgreSQL執行個體大版本不同,升級方法不同。
以下操作只針對單個資料庫有效,如果執行個體中存在多個資料庫,需要對每個資料庫均執行以下操作。
如果RDS PostgreSQL執行個體大版本為PostgreSQL 10、13、14或15,升級方法如下:
執行如下SQL升級PostGIS外掛程式版本。
ALTER EXTENSION <外掛程式名> UPDATE;
說明每一個外掛程式都需要單獨執行上述語句進行升級操作。
您也可以通過執行PostGIS_Extensions_Upgrade函數對外掛程式進行升級。更多資訊,請參見PostGIS_Extensions_Upgrade。
SELECT PostGIS_Extensions_Upgrade();
如果RDS PostgreSQL執行個體大版本為PostgreSQL 11、12,升級方法如下:
執行如下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' ;