为 AlloyDB Omni 安装 PostGIS

AlloyDB Omni 不包含 PostGIS 扩展程序,但您可以按照本页中的说明将其手动添加到现有的 AlloyDB Omni 安装中,以添加对存储、编入索引和查询地理空间数据的支持。

准备工作

确保您已在系统上安装 AlloyDB Omni

将 PostGIS 添加到 AlloyDB Omni 安装

如需将 PostGIS 扩展程序添加到 AlloyDB Omni 安装,请按以下步骤操作:

  1. 查找已安装的 AlloyDB Omni 版本标签:

    Docker

    docker run --rm -it  google/alloydbomni cat VERSION.txt

    Podman

    podman run --rm -it  google/alloydbomni cat VERSION.txt

    输出类似于以下内容:

    AlloyDB Omni version: 15.7.0
    

    记下 AlloyDB Omni 版本号,您需要在下一步中使用此版本号。

  2. 设置 OMNI_VERSION 环境变量:
    OMNI_VERSION=VERSION

    VERSION 替换为上一步中的完整数据库服务器版本,例如 15.5.3

  3. 创建一个包含 PostGIS 的新 AlloyDB Omni 容器:

    Linux

           mkdir ~/alloydb-omni-postgis
           tee -a ~/alloydb-omni-postgis/Dockerfile << EOF
           ARG OMNI_VERSION
           FROM google/alloydbomni:${OMNI_VERSION}
           RUN apt-get update && 
    apt-get install -y --no-install-recommends
    postgresql-15-postgis-3 &&
    apt-get purge -y --auto-remove &&
    rm -rf /var/lib/apt/lists/* EOF
    cd ~/alloydb-omni-postgis sudo docker build --build-arg OMNI_VERSION=$OMNI_VERSION --tag google/alloydbomni-with-postgis:$OMNI_VERSION .

    macOS

           mkdir ~/alloydb-omni-postgis
           tee -a ~/alloydb-omni-postgis/Dockerfile << EOF
           ARG OMNI_VERSION
           FROM google/alloydbomni:${OMNI_VERSION}
           RUN apt-get update && 
    apt-get install -y --no-install-recommends
    postgresql-15-postgis-3 &&
    apt-get purge -y --auto-remove &&
    rm -rf /var/lib/apt/lists/* EOF
    cd ~/alloydb-omni-postgis sudo docker build --build-arg OMNI_VERSION=$OMNI_VERSION --tag google/alloydbomni-with-postgis:$OMNI_VERSION .
  4. 使用 AlloyDB Omni 创建一个名为 my-omni-postgis 的新容器:

    Docker

    docker run --name my-omni-postgis  -e POSTGRES_PASSWORD=NEW_PASSWORD  -d google/alloydbomni-with-postgis:OMNI_VERSION

    Podman

    podman run --name my-omni-postgis  -e POSTGRES_PASSWORD=NEW_PASSWORD  -d google/alloydbomni-with-postgis:OMNI_VERSION
  5. 使用 PostGIS 扩展程序连接到数据库:

    docker exec -it my-omni-postgis psql -h localhost -U postgres
  6. 启用 PostGIS:

       CREATE EXTENSION IF NOT EXISTS 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)