Wenn ein kvwmap-Layer eine Geometrie haben soll, wird datenbankseitig ein Geometry-Attribut angelegt.

Grundsätzlich:

Ein Geometrie-Attribut wird nach Anlegen der Tabelle mit separatem SQL angelegt oder - wenn die Tabelle per CREATE TABLE angelegt wird - im SQL selbst:

SELECT AddGeometryColumn('schema', 'tabelle','the_geom',25833,'MULTIPOLYGON', 2); -- Geometrietyp immer in '...'; Groß-/Kleinschreibung wird ignoriert
– bzw.
CREATE TABLE <schema>.<tabelle> (
  -- ...,
  the_geom geometry(multipolygon, 25833) NOT NULL -- Geometrietyp kann auch in '...' geschrieben werden; Groß-/Kleinschreibung wird ignoriert
);

Außerdem sollte immer ein Index auf das Geometrie-Attribut gelegt werden:

CREATE INDEX gist_<name>
  ON <schema>.<tabelle>
  USING gist
  (the_geom);
<name> sollte der Name der Tabelle sein, möglicherweise etwas abgekürzt.

Außerdem sollte das Geometrie-Attribut immer auf NOT NULL gesetzt werden. Einzige Ausnahme: Es ist abzusehen, dass es auch Datensätze ohne Geometrie geben wird. Dieser Fall muss auf jeden Fall mit dem Datenherrn besprochen werden!

ALTER TABLE <schema>.<tabelle> ALTER COLUMN the_geom SET NOT NULL;
Einfacher ist es hier aber, das NOT NULL über dbeaver in den Spalteneigenschaften zu setzen.


Geometrie-Attribute nicht über dbeaver als „geometry“ anlegen!

Keine Constraints außer NOT NULL erzeugen!

NOT NULL nicht vergessen!