全部產品
Search
文件中心

ApsaraDB RDS:時空引擎外掛程式升級

更新時間:Oct 16, 2024

GanosBase時空引擎外掛程式包括阿里雲自研GanosBase外掛程式和PostGIS外掛程式。本文介紹這些外掛程式的升級方法。

GanosBase外掛程式升級

查詢已安裝的GanosBase外掛程式

  1. 使用PostgreSQL命令列工具串連資料庫。

  2. 執行如下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_updatet時,表示需要升級。

升級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外掛程式

  1. 使用PostgreSQL命令列工具串連資料庫。

  2. 執行如下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_updatet時,表示需要升級。

升級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' ;