Installa PostGIS per AlloyDB Omni

Seleziona una versione della documentazione:

Questa pagina descrive come aggiungere manualmente l'estensione PostGIS a un'installazione AlloyDB Omni esistente. L'estensione PostGIS consente di archiviare, indicizzare ed eseguire query sui dati geospaziali.

Puoi installare PostGIS utilizzando uno dei seguenti metodi:

  • Utilizza le opzioni Debian nell'interfaccia a riga di comando Docker o Podman. Docker si basa su un daemon e richiede i privilegi di root per la maggior parte delle operazioni, mentre Podman è senza daemon e senza root.
  • Utilizza le immagini di base universali (UBI) di Red Hat. Le immagini del sistema operativo di base del container UBI sono create a partire da parti di Red Hat Enterprise Linux (RHEL).

Prima di iniziare

Installa AlloyDB Omni sul tuo sistema.

Aggiungere PostGIS all'installazione di AlloyDB Omni

Per aggiungere l'estensione PostGIS all'installazione di AlloyDB Omni, segui questi passaggi:

  1. Trova le etichette della versione di AlloyDB Omni installata:

    Docker

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

    Podman

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

    L'output è simile al seguente:

    AlloyDB Omni version: 16.8.0
    

    Prendi nota del numero di versione di AlloyDB Omni perché ti servirà nel passaggio successivo.

  2. Imposta la variabile di ambiente OMNI_VERSION:

    OMNI_VERSION=VERSION
    

    Sostituisci VERSION con la versione completa del server di database del passaggio precedente, ad esempio 16.8.0.

  3. Crea un nuovo contenitore AlloyDB Omni che includa 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 nuovo container con AlloyDB Omni denominato 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. Connettiti al database con l'estensione PostGIS:

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

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

    L'output è simile al seguente:

    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)