2013-02-24 91 views
8

我有一個正常的postgres數據庫,其中包含大量的地理編碼數據。這只是作爲經緯度的兩列。將普通Postgres數據庫轉換爲PostGis數據庫

我想將此數據庫轉換爲PostGIs數據庫。任何人都可以建議我一種方法來轉換我的數據庫?我不想創建一個新的基於postgis tempalte的數據庫,然後逐個移動整個數據。

+0

PostGIS文檔討論如何「空間啓用」數據庫。一旦你完成了這些,你只需要添加適當的PostGIS函數的PostGIS列,使用'UPDATE's將基本的地理數據複製到PostGIS列中,然後刪除舊的列。 – 2013-02-24 07:09:55

+2

如果您正在運行PostgreSQL 9.1+,則無需打擾模板數據庫。只需創建一個數據庫,然後在pgAdmin的SQL視圖中鍵入並運行 CREATE EXTENSION postgis; 這將在空間上啓用您的數據庫。 來源:http://gis.stackexchange.com/questions/26508/how-to-create-postgis-template – 2013-02-24 07:34:02

回答

7

首先,將PostGIS 2.x安裝到您的系統上。這是在psql或者pgAdmin的III的工作流程:

-- Spatially enable the database 
CREATE EXTENSION postgis; 

-- Spatially enable each table with a geometry column 
--  [ also consider using "geog geography(Point,4326)" ] 
ALTER TABLE mytable ADD COLUMN geom geometry(Point,4326); 
UPDATE mytable SET geom = ST_SetSRID(ST_MakePoint(long, lat), 4326); 
+0

我已經安裝了postgis Ubuntu軟件包,但運行得到我「錯誤:無法打開擴展控制文件「/usr/share/postgresql/9.1/extension/postgis.control」:沒有這樣的文件或目錄「 – Cerin 2014-01-08 22:56:25

+0

@Cerin我會通知包管理器並提供其他詳細信息 – 2014-01-09 00:34:55

+0

在Ubuntu 14中再次嘗試這種方式,它工作正常。 – Cerin 2016-01-30 04:41:41

2

我知道這是舊的...但我想補充一下,以解決以前的問題:

@Cerin,一定要易於得到安裝postgresql-xx-postgis-2.1,而不僅僅是apt-get install postgis。我之前也有過這個問題

+0

我收到與@Cerin相同的錯誤,但說它找不到「/usr/share/postgresql/9.3/extension/postgis.control」(我有一個Debian,安裝了postgresql-9.4和postgresql-9.4-postgis- 2.1) – FSp 2015-09-17 13:16:35

相關問題