為 AlloyDB Omni 安裝 PostGIS

選取說明文件版本:

本頁面說明如何手動將 PostGIS 擴充功能新增至現有的 AlloyDB Omni 安裝項目。PostGIS 擴充功能可儲存、建立索引及查詢地理空間資料。

事前準備

在系統上安裝 AlloyDB Omni

在 AlloyDB Omni 安裝中新增 PostGIS

如要在 AlloyDB Omni 安裝中新增 PostGIS 擴充功能,請按照下列步驟操作:

  1. 如要申請存取預先發布版,請填寫這份表單
  2. 在安裝 AlloyDB Omni 伺服器的 VM 上,初始化 Red Hat Subscription Manager:

    sudo dnf install -y subscription-manager
    sudo subscription-manager register --username "RHSM_USER" --password "RHSM_PASS" --auto-attach --force
    

    更改下列內容:

    • RHSM_USER:Red Hat Subscription Manager 使用者。
    • RHSM_PASS:Red Hat Subscription Manager 密碼。
  3. 啟用 CodeReady Builder 存放區:

    sudo subscription-manager repos --enable="codeready-builder-for-rhel-9-$ARCH-rpms"
    

    ARCH 替換成要使用的 RHEL 架構,例如 x86_64

  4. 新增 PostgreSQL Yum 存放區:

    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    
  5. 安裝 PostgreSQL 伺服器和開發套件:

    sudo dnf install -y "postgresql17-server"
    

    OMNI_VERSION 替換為 AlloyDB Omni 版本號碼,即 17

  6. 安裝 PostGIS 擴充功能:

    sudo dnf install -y postgis35_17
    
  7. 建立必要符號連結,確保擴充功能位於預期路徑:

    set -e
    PGVER="17"
    
    sudo mkdir -p "/usr/lib/postgresql/${PGVER}/share/extension"
    
    for file in /usr/pgsql-${PGVER}/share/extension/*; do
        target="/usr/lib/postgresql/${PGVER}/share/extension/$(basename "$file")"
        if [[ ! -e "$target" ]]; then
          sudo ln -s "$file" "$target" || (echo "Failed to link \"$file\" to \"$target\", exiting." && exit 1)
          echo "Created extension link for $(basename "$file")"
        else
          echo "Target $target already exists."
        fi
    done
    
    sudo mkdir -p "/usr/lib/postgresql/${PGVER}/lib"
    
    for file in /usr/pgsql-${PGVER}/lib/*; do
        target="/usr/lib/postgresql/${PGVER}/lib/$(basename "$file")"
        if [[ ! -e "$target" ]]; then
          sudo ln -s "$file" "$target" || (echo "Failed to link \"$file\" to \"$target\", exiting." && exit 1)
          echo "Created lib link for $(basename "$file")"
        else
          echo "Target $target already exists."
        fi
      fi
    done
    
  8. 使用 PostGIS 擴充功能連線至資料庫:

    /usr/lib/postgresql/17/bin/psql -h localhost -U postgres
    
  9. 啟用 PostGIS:

    CREATE EXTENSION IF NOT EXISTS POSTGIS;
    
  10. 確認已安裝並啟用 PostGIS:

    SELECT postgis_full_version();
    

    輸出結果會與下列內容相似:

    postgres=# SELECT postgis_full_version();
    postgis_full_version
    --------------------------------------------------------------------------------------------------------------------------------
    POSTGIS="3.3.2 4975da8" [EXTENSION] PGSQL="150" GEOS="3.11.1-CAPI-1.17.1" PROJ="9.1.1" LIBXML="2.9.14" LIBJSON="0.16" LIBPROTOBUF="1.4.1" WAGYU="0.5.0 (Internal)"
    (1 row)