Instalar o PostGIS para o AlloyDB Omni

O AlloyDB Omni não inclui a extensão PostGIS, mas você pode adicioná-la manualmente a uma instalação do AlloyDB Omni seguindo as instruções desta página para adicionar suporte ao armazenamento, indexação e consulta de dados geoespaciais.

Antes de começar

Verifique se você instalou o AlloyDB Omni no seu sistema.

Adicionar o PostGIS à instalação do AlloyDB Omni

Para adicionar a extensão PostGIS à instalação do AlloyDB Omni, siga estas etapas:

  1. Encontre os identificadores de versão do AlloyDB Omni instalados:

    Docker

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

    Podman

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

    O resultado será assim:

    AlloyDB Omni version: 15.7.0
    

    Anote o número da versão do AlloyDB Omni. Você vai precisar dele na próxima etapa.

  2. Defina a variável de ambiente OMNI_VERSION:
    OMNI_VERSION=VERSION

    Substitua VERSION pela versão completa do servidor de banco de dados da etapa anterior, por exemplo, 15.5.3.

  3. Crie um novo contêiner do AlloyDB Omni que inclua o 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-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. Crie um novo contêiner com o AlloyDB Omni chamado 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. Conecte-se ao seu banco de dados com a extensão PostGIS:

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

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

    A saída será assim:

       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)