Instala PostGIS para AlloyDB Omni

Selecciona una versión de la documentación:

En esta página, se describe cómo agregar manualmente la extensión PostGIS a una instalación existente de AlloyDB Omni. La extensión PostGIS permite almacenar, indexar y consultar datos geoespaciales.

Puedes instalar PostGIS con cualquiera de los siguientes métodos:

  • Usa las opciones de Debian en la CLI de Docker o Podman. Docker depende de un daemon y requiere privilegios de administrador para la mayoría de las operaciones, mientras que Podman no tiene daemon y no requiere privilegios de administrador.
  • Usa imágenes base universales (UBI) de Red Hat. Las imágenes de sistemas operativos base de contenedores de UBI se compilan a partir de partes de Red Hat Enterprise Linux (RHEL).

Antes de comenzar

Instala AlloyDB Omni en tu sistema.

Agrega PostGIS a tu instalación de AlloyDB Omni

Para agregar la extensión PostGIS a tu instalación de AlloyDB Omni, sigue estos pasos:

  1. Sigue estos pasos para encontrar las etiquetas de la versión de AlloyDB Omni que instalaste:

    Docker

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

    Podman

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

    El resultado es similar a este:

    AlloyDB Omni version: 16.3.0
    

    Toma nota del número de versión de AlloyDB Omni porque lo necesitarás en el siguiente paso.

  2. Establece la variable de entorno OMNI_VERSION:

    OMNI_VERSION=VERSION
    

    Reemplaza VERSION por la versión completa del servidor de la base de datos del paso anterior, por ejemplo, 16.3.0.

  3. Crea un nuevo contenedor de AlloyDB Omni que incluya PostGIS:

    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-16-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-16-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. Crea un nuevo contenedor con AlloyDB Omni, llamado my-omni-postgis:

    Docker

    docker build -t google/alloydbomni-with-postgis:latest
    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. Conéctate a tu base de datos con la extensión PostGIS:

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

    CREATE EXTENSION IF NOT EXISTS POSTGIS;
    SELECT postgis_full_version();
    

    El resultado es similar al siguiente:

    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)