我有一個正常的postgres數據庫,其中包含大量的地理編碼數據。這只是作爲經緯度的兩列。將普通Postgres數據庫轉換爲PostGis數據庫
我想將此數據庫轉換爲PostGIs數據庫。任何人都可以建議我一種方法來轉換我的數據庫?我不想創建一個新的基於postgis tempalte的數據庫,然後逐個移動整個數據。
我有一個正常的postgres數據庫,其中包含大量的地理編碼數據。這只是作爲經緯度的兩列。將普通Postgres數據庫轉換爲PostGis數據庫
我想將此數據庫轉換爲PostGIs數據庫。任何人都可以建議我一種方法來轉換我的數據庫?我不想創建一個新的基於postgis tempalte的數據庫,然後逐個移動整個數據。
首先,將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);
我知道這是舊的...但我想補充一下,以解決以前的問題:
@Cerin,一定要易於得到安裝postgresql-xx-postgis-2.1,而不僅僅是apt-get install postgis。我之前也有過這個問題
我收到與@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
PostGIS文檔討論如何「空間啓用」數據庫。一旦你完成了這些,你只需要添加適當的PostGIS函數的PostGIS列,使用'UPDATE's將基本的地理數據複製到PostGIS列中,然後刪除舊的列。 – 2013-02-24 07:09:55
如果您正在運行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