Tabelle geometry_columns fehlt

Hallo,

ich habe gerade PostGIS instaliert, habe aber folgendes Problem. In meiner neuen Datenbank postgis fehlt die Tabelle geometry_columns. Die Dateien postgis.sql und spatial_ref_sys.sql habe ich schon versucht händisch auszuführen, was mir leider nicht geholfen hat.

Ich versuche gerade diesen Befehl auszuführen und bekomme folgende Fehlermeldung :
INSERT INTO baueme VALUES ( 1234, ‘Eiche’, GeometryFromText ( ‘POINT ( 10 20 )’, -1 ) );
HINT: Keine Funktion stimmt mit dem angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.

Es liegt vermutlich daran, dass ich geometry_columns nicht habe, oder?

Grüß
Tamara.

hast Du die Extension installiert? CREATE EXTENSION postgis;

Wenn - dann unbewusst. Die PostGIS Erweiterungen sollten wohl automatisch kompiliert und installiert werden. Es gibt das Verzeichnis EXTENSION im C:\Program Files\PostgreSQL\9.6\share. Also wohl installiert, oder? Sorry ich bin die absolute Anfängerin und verstehe leider noch nicht viel.

Extensions sind da, aber per default NICHT in irgend einer Datenbank erstellt. Das passiert erst mit CREATE EXTENSION …

Nachtrag:

select* from pg_available_extensions;

zeigt dir an, welche VERFÜGBAR sind, während

select extname from pg_extension ;

dir anzeigt, welche INSTALLIERT sind. Verfügbar != Installiert.

Instaliert:

“plpgsql”
“postgis”
“pgrouting”
“postgis_topology”
“address_standardizer”
“postgis_sfcgal”
“pointcloud”
“pointcloud_postgis”
“ogr_fdw”
“fuzzystrmatch”
“postgis_tiger_geocoder”

dann sollte es ja gehen. Du hast das auch in derselben DB gemacht, in der auch die Tabelle “baueme” (copy&paste, nicht mein Fehler) ist?

Vielleicht sind die Extensions ja in einem Schema installiert welches nicht im search_path ist.

Was liefert denn:

select ex.extname, n.nspname as schema_name
from pg_extension ex
  join pg_namespace n on n.oid = ex.extnamespace;

und

show search_path;

die erste Abfrage
Unbenannt.PNG

zweite
Unbenannt.PNG

Und ja, ich habe das in derselben DB gemacht, in der die Tabelle “baeume” ist

Ich habe den Fehler gefunden! Mit ST_GeomFromText statt GeomFromText funktioniert. Danke trotzdem für die Hilfe.
Wofür braucht man die Tabelle geometry_columns? Überall steht, dass sie in der postgis - Datenbank unbedingt sein sollte.

Ahhhh…

Diese Tabelle ist keine Tabelle, sondern ein View. Den benötigen die PostGIS-Funktionen für ihr funktionieren. Einfach akzeptieren …

Aber wenn ich die Tabelle bzw. den View nicht in meiner DB habe, kann es in der Zukunft passieren, dass ich eine Fehlermeldung bekomme, die damit was zu tun hat. Werde aber wohl wieder nicht wissen, ob es wirklich daran liegt. Wäre es möglich die Tabelle zu erzeugen? Gibt es irgendwo .sql Datei, die dafür passende Anfrage enthält? Ich habe gesucht, aber leider nicht gefunden.

die entsteht beim CREATE EXTENSION mit:

foo=# select * from pg_extension ;
 extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition 
---------+----------+--------------+----------------+------------+-----------+--------------
 plpgsql |       10 |           11 | f              | 1.0        |           | 
(1 row)

foo=*# \d
Did not find any relations.
foo=*# create extension postgis;
CREATE EXTENSION
foo=*# select extname from pg_extension ;
 extname 
---------
 plpgsql
 postgis
(2 rows)

foo=*# \d
                List of relations
 Schema |       Name        | Type  |    Owner    
--------+-------------------+-------+-------------
 public | geography_columns | view  | akretschmer
 public | geometry_columns  | view  | akretschmer
 public | raster_columns    | view  | akretschmer
 public | raster_overviews  | view  | akretschmer
 public | spatial_ref_sys   | table | akretschmer
(5 rows)

foo=*#