-- PostGIS 1.x
CREATE TABLE hoge (
gid int,
geom geometry,
-- Dimension
CONSTRAINT enforce_dims_geom CHECK (ndims(geom) = 2),
-- Geometry Type
CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) = 'LINESTRING'::text OR geom IS NULL),
-- SRID
CONSTRAINT enforce_srid_geom CHECK (srid(geom) = 4326)
);
-- PostGIS 2.x using TypMod
CREATE TABLE hoge (
gid int,
geom geometry(LineString, 4326) -- 2D LineString, SRID 4326
);
-- connect to remote DB
SELECT dblink_connect('
host=
port=
dbname=
user=
password=
');
-- create table and import data
CREATE TABLE fuga AS
SELECT * FROM dblink('SELECT * FROM remote_table') AS t (
column1 columntype,
column2 columntype,
column3 columntype,,,
-- paste from DDL using TypMod
);
-- disconnect from remote DB
SELECT dblink_disconnect();
上のひな形で各テーブルのCREATE ... AS SELECT文を作り、主キーを追加したのが冒頭のSQL。これを実行してサンプルDBをローカルにコピーできました。テーブル定義を一つずつ手動で控えるのが手間でしたが、pgAdmin上で作業が完結したので良しとします。