2016-12-06 52 views
0

研究員,Postgis - 從1.5遷移到2.3 - 解決方法

我已經很難嘗試從postgis 1.5遷移到2.3。實際上,我曾多次嘗試使用所有版本的postgis:2.0,2.1,2.2和2.3。

正如我已經花了幾個星期了,並且爲我準備放棄,我一直用我的舊版本PostgreSQL和PostGIS的,我希望我的問題找到一個地方...回聲

我只想要遷移一個表格字段,一個幾何字段。因此,在嘗試這樣做之前,我想聽聽您是否有任何經驗:

想法是從舊postgis(postgresql 9.2,postgis 1.5)中選擇字段,並將表更新爲新postgis(postgresql 9.6,postgis 2.3)。

任何人都可以對此有任何說法嗎?

編輯---

我剛纔tryed導入我所需要的表,但我得到了一個錯誤: 違反約束「enforce_srid_the_geom」的。

:(

非常感謝

回答

0

如果你只是需要一個表具有幾何列遷移和你正在煩惱與此處描述的過程http://www.postgis.org/docs/postgis_installation.html#hard_upgrade 我建議解決方法:創建舊數據庫中的文本字段,如wkt_geom,然後執行

update tablename set wkt_geom = st_astext(the_geom) 

現在下降幾何列,出口舊數據庫,並導入到新的一個。然後,創建幾何列和

update tablename set the_geom = st_geomfromtext(wkt_geom, SRID_HERE) 
+0

這似乎很好。但是SRID_HERE會是什麼? –

+0

您的數據。嘗試使用:SELECT ST_SRID(the_geom)FROM your_table_name LIMIT 1;或者選擇find_srid('schemaname','tablename','columnname'); – fradal83

+0

第一個選擇的值是-1。第二個值是錯誤:ERRO:find_srid() - 找不到相應的SRID - 是在GEOMETRY_COLUMNS表中註冊的幾何?是否有大寫/小寫錯配? SQL狀態:P0001 –