Der Fehler „django.db.utils.NutSupportedError: extension ‚postgis‘ not available“ wird ausgegeben, obwohl Postgis in PytPython

Python-Programme
Anonymous
 Der Fehler „django.db.utils.NutSupportedError: extension ‚postgis‘ not available“ wird ausgegeben, obwohl Postgis in Pyt

Post by Anonymous »

Ich versuche, Modelländerungen, die ich an meiner Codebasis vorgenommen habe, auf einen PostgreSQL-Server (PostgreSQL 18.1 auf x86_64-Linux, kompiliert mit gcc-11.4.0, 64-Bit) zu migrieren, aber jedes Mal, wenn ich das tue, wird dieser Fehler ausgegeben. Insbesondere löst die Migrationssequenz den Fehler aus, wenn die Datei /home/[Benutzername]/[Projekt]/[Projektverzeichnis]/newenv/lib/python3.10/site-packages/django/db/backends/utils.py bei der Rückgabe von self.cursor.execute(sql) gelesen wird. (Hinweis: Die Systemumgebung ist Linux DESKTOP-7C9U6H4 6.6.87.2-microsoft-standard-WSL2).
Die aufgerufene Funktion sieht folgendermaßen aus:

Code: Select all

def _execute(self, sql, params, *ignored_wrapper_args):
# Raise a warning during app initialization (stored_app_configs is only
# ever set during testing).
if not apps.ready and not apps.stored_app_configs:
warnings.warn(self.APPS_NOT_READY_WARNING_MSG, category=RuntimeWarning)
self.db.validate_no_broken_transaction()
with self.db.wrap_database_errors:
if params is None:
# params default might be backend specific.
return self.cursor.execute(sql)
else:
return self.cursor.execute(sql, params)
In meinen Projekteinstellungen sieht mein Datenbankwörterbuch wie folgt aus:

Code: Select all

DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': '[name]',
'USER': '[user]',
'PASSWORD': '',
'HOST': '127.0.0.1',  # localhost
'PORT': '5432',
}
}
Wenn ich versuche, den Befehl CREATE extension postgis einzugeben; Auf der Datenbankseite (der Server befindet sich unter /usr/local/pgsql/data) erhalte ich die folgende Fehlermeldung: FEHLER: Erweiterung „postgis“ ist nicht verfügbar. Hinweis: Die Erweiterung muss zuerst auf dem System installiert werden, auf dem PostgreSQL ausgeführt wird.
Mir ist unklar, warum die Erweiterung nicht verfügbar ist, da ich sie bereits ausgeführt habe (in der lokalen virtuellen Umgebung meines Projekts)

Code: Select all

    sudo apt install postgis

sudo apt install postgresql-18

sudo apt install ca-certificates gnupg

curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Wenn ich apt search postgis ausführe, werden diese Elemente für postgresql-18 angezeigt

Code: Select all

postgresql-18-postgis-3/jammy-pgdg-testing,jammy-pgdg,now 3.6.1+dfsg-1.pgdg22.04+1 amd64 [installed,automatic]
Geographic objects support for PostgreSQL 18

postgresql-18-postgis-3-dbgsym/jammy-pgdg-testing,jammy-pgdg 3.6.1+dfsg-1.pgdg22.04+1 amd64
debug symbols for postgresql-18-postgis-3

postgresql-18-postgis-3-scripts/jammy-pgdg-testing,jammy-pgdg,now 3.6.1+dfsg-1.pgdg22.04+1 all [installed,automatic]
Geographic objects support for PostgreSQL 18 -- SQL scripts

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post