
Nachdem sich gezeigt hatte, dass alles andere einwandfrei funktionierte (JUHU!), Postgres
wurde der Start verweigert (lassen Sie sich nicht vom Namen irritieren – Postgres wurde bereits in der ersten Paketversion im Jahr 1995 als PostgreSQL
Loblied auf Paul Aokis Konvertierung des QUEL
Abfragesprachenprozessors verpackt, um SQL
diese Funktion zu verwenden – alles außer der Verpackung/Marke verwendet den Namen Postgres
).
Dieser Startfehler kam nicht unerwartet, obwohl das Paket dies für Upgrades HÄTTE vorhersehen KÖNNEN, da dies wahrscheinlich bei allen aktualisierten Installationen erforderlich ist und das entsprechende Upgrade-Skript für uns ausgeführt werden muss. Dieses Skript kann folgendermaßen ausgeführt werden:
postgresql-setup --upgrade --upgrade-from postgresql
Leider ist es fehlgeschlagen.
Ich bin der Fehlerspur gefolgt – eine Protokolldatei im Postgres
Stammverzeichnis des Benutzers, auf die ein Zwischenprotokoll verweist, das stdout
von diesem Befehl ausgegeben wird, wies auf ein Problem mit hin Postgis
, das von der Installation verwendet wird.
Die relevanteste Fehlermeldung lautete:
ERROR: could not access file "$libdir/postgis-3"
Leider stand da nicht, wo $libdir
es sein soll und leider weiß ich auch nicht, wo es ist! Ich habe bisher kein Verzeichnis mit dem Namen gefunden postgis
.
Ich nahm an, Postgis
dass es nicht aktualisiert oder vielleicht nicht installiert wurde, aber das erwies sich bei einer einfachen Überprüfung der installierten Pakete als falsch: Es heißtpostgis-3.2.2-1.fc37.x86_64
Dass in der Fehlermeldung das Nichtfinden eines Teils bemängelt wurde postgis-3
und trotzdem eine postgis
Version 3 installiert ist, hat mich überrascht.
Ich habe noch keine Lösung. Was meint ihr? Das MUSS ein häufiges Problem bei Postgres
Benutzern sein, die auch verwenden Postgis
!
Antwort1
PostGISist eine Erweiterung, die als Paket installiert wird. Sie müssen das Paket installieren, das sowohl zu Ihrer PostgreSQL-Hauptversion als auch zu Ihrer Postgis-Erweiterungsversion passt. Wie zum Beispiel; postgis32_15
oderpostgis31_14
$libdir
oder jede andere vordefinierte (meist mit der Kompilierung gelieferte) Konfiguration kann gelernt werden mitpg_configClient-Anwendung. Sie können grundsätzlich lernenlibdirindem Sie den folgenden Befehl ausführen.
pg_config --pkglibdir
Wenn Sie nicht findenpg_configdann ist es höchstwahrscheinlich dort, wopsqlBefehl ist ( $bindir
) .
Antwort2
Unter Fedora 37 erhalten Sie diese Fehlermeldung während des Datenbank-Upgrades, wenn Sie das postgis-upgrade
Paket nicht installiert haben.
Das vollständige Upgrade-Verfahren für PostGIS-fähige Datenbanken sieht also ungefähr so aus:
systemctl start postgresql.service
# => start fails fails and some hints are logged
dnf install postgresql-upgrade postgis-upgrade
postgresql-setup --upgrade
systemctl start postgresql.service
sudo -u postgres psql -f /var/lib/pgsql/update_extensions.sql
sudo -u postgres reindexdb yourdb
Generell ist es eine gute Idee, die Upgrade-Protokolle (und die Standard-Protokolle /var/lib/pgsql/data/log/postgresql*.log
) zu überprüfen, ob es zusätzliche Hinweise gibt, die speziell für Ihre konkrete Datenbank gelten.