Migration MariaDB > Postgres+PostGIS = fehlende Geometry Eigenschaft

pg_newbie2020

Neuer Benutzer
Beiträge
3
Hallo Zusammen,

ich habe eine "alte" DB von MariaDB nach PG "umgezogen" - Tabellen, Spalten und Inhalte sind auch alle da.

Ich habe folgende Extensions installiert:

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION postgis_sfcgal;
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION address_standardizer;
CREATE EXTENSION address_standardizer_data_us;
CREATE EXTENSION postgis_tiger_geocoder;
CREATE EXTENSION pgrouting;
CREATE EXTENSION ogr_fdw;
CREATE EXTENSION pointcloud;
CREATE EXTENSION pointcloud_postgis;
CREATE EXTENSION postgis_raster;

Die Abfrage mit:

select extname from pg_extension;

zeigt mir auch an, dass die folgenden Extensions installiert sind:

"plpgsql"
"adminpack"
"postgis"
"postgis_topology"
"postgis_sfcgal"
"fuzzystrmatch"
"address_standardizer"
"address_standardizer_data_us"
"postgis_tiger_geocoder"
"pgrouting"
"ogr_fdw"

Ich habe in der DB eine Tabelle die zwei Spalten mit Geodaten enthält:

laengengrad (8.964395615000000)
breitengrad (49.000550000000000)

Allerdings haben diese Spalten die Eigenschaft (Data Type)

numeric

Dadurch werden diese Spalten in der GIS Software (Cadenza) nicht als Geo Daten erkannt.

Was muss ich machen um diese Spalten entsprechend anzupassen?

Danke

Falk
 
Werbung:
Hi,

bitte nicht ein und dieselbe Frage mehrfach in verschiedenen Foren stellen, okay? Das verstößt gegen die Forenregeln.

Code:
test=*# create table falk(l numeric, b numeric, g geometry);
CREATE TABLE
test=*# insert into falk values (8.964395615000000,49.000550000000000,NULL);
INSERT 0 1
test=*# update falk set g = ST_GeomFromText('POINT(' || l::text || ' ' || b::text || ')');
UPDATE 1
test=*# select * from falk ;
         l         |         b          |                     g                     
-------------------+--------------------+--------------------------------------------
 8.964395615000000 | 49.000550000000000 | 010100000060A91543C5ED2140A301BC0512804840
(1 row)
 
Hallo,
danke für die Info und Belehrung.

Ich habe jetzt noch folgendes (Verständnis)-Problem.

In der Tabelle hat es ca. 45 Spalten. D.h. wenn ich Deine Lösung anwende - sprich eine neue Tabelle mache - dann fehlt mir ja der Bezug zu den restlichen Daten.

Grüße

Falk
 
Oder
Code:
alter table bestehende_tabelle add neue_geometrie geometry;
update bestehende_tabelle
   set neue_geometrie = ST_GeomFromText(...);
 
jepp, nur hat er dann die 2 extra-Spalten, die er dann später vielleicht wieder via ALTER TABLE entfernt - und jedesmal die Tabelle neu schreibt, massig WAL und Bloat produziert etc. Viele Wege führen zum Ziel...
 
Code:
test=*# create table falk(l numeric, b numeric, g geometry);
CREATE TABLE
test=*# insert into falk values (8.964395615000000,49.000550000000000,NULL);
INSERT 0 1
test=*# update falk set g = ST_GeomFromText('POINT(' || l::text || ' ' || b::text || ')');
UPDATE 1
test=*# select * from falk ;
         l         |         b          |                     g                   
-------------------+--------------------+--------------------------------------------
 8.964395615000000 | 49.000550000000000 | 010100000060A91543C5ED2140A301BC0512804840
(1 row)


Danke für die Antwort....

Jetzt noch eine Anschlussfrage: im Feld G was für ein Wert ist das?
 
Werbung:
Zurück
Oben