AlloyDB Omni enthält nicht die PostGIS-Erweiterung. Sie können sie jedoch einer vorhandenen AlloyDB Omni-Installation manuell hinzufügen. Folgen Sie dazu der Anleitung auf dieser Seite, um die Unterstützung für das Speichern, Indexieren und Abfragen von Geodaten hinzuzufügen.
Hinweise
AlloyDB Omni muss auf Ihrem System installiert sein.
Ein Server
PostGIS zu Ihrer AlloyDB Omni-Installation hinzufügen
So fügen Sie Ihrer AlloyDB Omni-Installation die PostGIS-Erweiterung hinzu:
- So finden Sie die Labels der installierten AlloyDB Omni-Versionen:
Docker
docker run --rm -it google/alloydbomni cat VERSION.txt
Podman
podman run --rm -it google/alloydbomni cat VERSION.txt
Die Ausgabe sieht in etwa so aus:
AlloyDB Omni version: 15.5.5
Notieren Sie sich die AlloyDB Omni-Versionsnummer. Sie benötigen sie im nächsten Schritt.
- Legen Sie die Umgebungsvariable
OMNI_VERSION
fest:OMNI_VERSION=VERSION
Ersetzen Sie VERSION durch die vollständige Datenbankserverversion aus dem vorherigen Schritt, z. B.
15.5.3
. - Erstellen Sie einen neuen AlloyDB Omni-Container mit PostGIS:
Docker
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 google/alloydbomni:${OMNI_VERSION} COPY --from=postgres /usr/lib/postgresql/15/lib/postgis-3.so /usr/lib/postgresql/15/lib/postgis-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_sfcgal-3.so /usr/lib/postgresql/15/lib/postgis_sfcgal-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_raster-3.so /usr/lib/postgresql/15/lib/postgis_raster-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_topology-3.so /usr/lib/postgresql/15/lib/postgis_topology-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/address_standardizer-3.so /usr/lib/postgresql/15/lib/address_standardizer-3.so COPY --from=postgres /usr/share/postgresql/15/extension/address_standardizer* /usr/lib/postgresql/15/share/extension/ COPY --from=postgres /usr/share/postgresql/15/extension/postgis* /usr/lib/postgresql/15/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 google/alloydbomni-with-postgis:$OMNI_VERSION .
Podman
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 google/alloydbomni:${OMNI_VERSION} COPY --from=postgres /usr/lib/postgresql/15/lib/postgis-3.so /usr/lib/postgresql/15/lib/postgis-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_sfcgal-3.so /usr/lib/postgresql/15/lib/postgis_sfcgal-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_raster-3.so /usr/lib/postgresql/15/lib/postgis_raster-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_topology-3.so /usr/lib/postgresql/15/lib/postgis_topology-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/address_standardizer-3.so /usr/lib/postgresql/15/lib/address_standardizer-3.so COPY --from=postgres /usr/share/postgresql/15/extension/address_standardizer* /usr/lib/postgresql/15/share/extension/ COPY --from=postgres /usr/share/postgresql/15/extension/postgis* /usr/lib/postgresql/15/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 podman build --build-arg OMNI_VERSION=$OMNI_VERSION --tag google/alloydbomni-with-postgis:$OMNI_VERSION .
Docker
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 google/alloydbomni:${OMNI_VERSION} COPY --from=postgres /usr/lib/postgresql/15/lib/postgis-3.so /usr/lib/postgresql/15/lib/postgis-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_sfcgal-3.so /usr/lib/postgresql/15/lib/postgis_sfcgal-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_raster-3.so /usr/lib/postgresql/15/lib/postgis_raster-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_topology-3.so /usr/lib/postgresql/15/lib/postgis_topology-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/address_standardizer-3.so /usr/lib/postgresql/15/lib/address_standardizer-3.so COPY --from=postgres /usr/share/postgresql/15/extension/address_standardizer* /usr/lib/postgresql/15/share/extension/ COPY --from=postgres /usr/share/postgresql/15/extension/postgis* /usr/lib/postgresql/15/share/extension/ COPY --from=postgres /usr/lib/aarch64-linux-gnu/ /usr/lib/aarch64-linux-gnu/ COPY --from=postgres /lib/aarch64-linux-gnu/ /lib/aarch64-linux-gnu/ COPY --from=postgres /usr/lib/aarch64-linux-gnu/liblapack.so.3 /usr/lib/ COPY --from=postgres /usr/lib/aarch64-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 google/alloydbomni-with-postgis:$OMNI_VERSION .
Podman
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 google/alloydbomni:${OMNI_VERSION} COPY --from=postgres /usr/lib/postgresql/15/lib/postgis-3.so /usr/lib/postgresql/15/lib/postgis-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_sfcgal-3.so /usr/lib/postgresql/15/lib/postgis_sfcgal-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_raster-3.so /usr/lib/postgresql/15/lib/postgis_raster-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/postgis_topology-3.so /usr/lib/postgresql/15/lib/postgis_topology-3.so COPY --from=postgres /usr/lib/postgresql/15/lib/address_standardizer-3.so /usr/lib/postgresql/15/lib/address_standardizer-3.so COPY --from=postgres /usr/share/postgresql/15/extension/address_standardizer* /usr/lib/postgresql/15/share/extension/ COPY --from=postgres /usr/share/postgresql/15/extension/postgis* /usr/lib/postgresql/15/share/extension/ COPY --from=postgres /usr/lib/aarch64-linux-gnu/ /usr/lib/aarch64-linux-gnu/ COPY --from=postgres /lib/aarch64-linux-gnu/ /lib/aarch64-linux-gnu/ COPY --from=postgres /usr/lib/aarch64-linux-gnu/liblapack.so.3 /usr/lib/ COPY --from=postgres /usr/lib/aarch64-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 podman build --build-arg OMNI_VERSION=$OMNI_VERSION --tag google/alloydbomni-with-postgis:$OMNI_VERSION .
- Erstellen Sie einen neuen Container mit AlloyDB Omni mit dem Namen
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
- Stellen Sie eine Verbindung zu Ihrer Datenbank mit der PostGIS-Erweiterung her:
Docker
docker exec -it my-omni-postgis psql -h localhost -U postgres
Podman
podman exec -it my-omni-postgis psql -h localhost -U postgres
- PostGIS aktivieren:
Die Ausgabe sieht dann ungefähr so aus:CREATE EXTENSION IF NOT EXISTS POSTGIS; SELECT postgis_full_version();
postgis_full_version ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- POSTGIS="3.4.2 c19ce56" [EXTENSION] PGSQL="150" GEOS="3.11.1-CAPI-1.17.1" PROJ="9.1.1 NETWORK_ENABLED=OFF URL_ENDPOINT= USER_WRITABLE_DIRECTORY=/var/lib/postgresql/.local/share/proj DATABASE_PATH=/usr/share/proj/proj.db" LIBXML="2.9.14" LIBJSON="0.16" LIBPROTOBUF="1.4.1" WAGYU="0.5.0 (Internal)" (1 row)