Instala PostGIS para AlloyDB Omni

Selecciona una versión de la documentación:

AlloyDB Omni no incluye la extensión PostGIS, pero puedes agregarla manualmente a una instalación existente de AlloyDB Omni siguiendo las instrucciones de esta página.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos del 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:
    sudo alloydb version

    El resultado es similar a este:

    AlloyDB Omni CLI version: 1.0
    AlloyDB Omni database server version: 15.2.0
    

    Anota el número de versión del servidor de la base de datos, ya que 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, 15.2.0.

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

    mkdir ~/alloydb-omni-postgis

    tee -a ~/alloydb-omni-postgis/Dockerfile << EOF ARG OMNI_VERSION FROM postgres:15-bookworm as postgres

    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/*

    FROM gcr.io/alloydb-omni/pg-service:${OMNI_VERSION}

    COPY --from=postgres /usr/lib/postgresql/15/lib/postgis-3.so /lib/postgis-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_sfcgal-3.so /lib/postgis_sfcgal-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_raster-3.so /lib/postgis_raster-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_topology-3.so /lib/postgis_topology-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/address_standardizer-3.so /lib/address_standardizer-3.so COPY --from=postgres /usr/share/postgresql/15/extension/address_standardizer* /share/extension/ COPY --from=postgres /usr/share/postgresql/15/extension/postgis* /share/extension/

    COPY --from=postgres /usr/lib/x86_64-linux-gnu/ /usr/lib/x86_64-linux-gnu/ COPY --from=postgres /lib/x86_64-linux-gnu/ /lib/x86_64-linux-gnu/

    COPY --from=postgres /usr/lib/x86_64-linux-gnu/liblapack.so.3 /usr/lib/ COPY --from=postgres /usr/lib/x86_64-linux-gnu/libblas.so.3 /usr/lib/ COPY --from=postgres /usr/lib/libarmadillo.so.11 /usr/lib/ COPY --from=postgres /usr/lib/libmfhdfalt.so.0 /usr/lib/ COPY --from=postgres /usr/lib/libmfhdfalt.so.0 /usr/lib/ COPY --from=postgres /usr/lib/libdfalt.so.0 /usr/lib/ COPY --from=postgres /usr/lib/libogdi.so.4.1 /usr/lib/ COPY --from=postgres /usr/share/proj/proj.db /usr/share/proj/proj.db

    EOF

    cd ~/alloydb-omni-postgis

    sudo docker build --build-arg OMNI_VERSION=$OMNI_VERSION --tag gcr.io/alloydb-omni/pg-service-with-postgis:$OMNI_VERSION .

  4. Detén el servidor de la base de datos:
    sudo alloydb database-server stop
    
  5. Abre /var/alloydb/config/dataplane.conf en un editor de texto.
  6. Modifica la línea que define la variable PG_IMAGE para que haga referencia al contenedor que compilaste en un paso anterior:
    PG_IMAGE=gcr.io/alloydb-omni/pg-service-with-postgis
    
  7. Inicia AlloyDB Omni:
    sudo alloydb database-server start
    
  8. Conéctate a tu base de datos:
    sudo docker exec -it pg-service psql -h localhost -U postgres
    
  9. Habilita PostGIS:

    CREATE EXTENSION IF NOT EXISTS POSTGIS;