[postgis-users] how to backup/restore

Ben Madin lists at remoteinformation.com.au
Sun Apr 11 18:47:30 PDT 2010


Nicholas,

I can't answer 'What's the right way?', as I'm sure I don't have it yet, but I have found the biggest issue is in getting postgis to transfer, so I do it in steps:

1. always install postgis into it's own schema (either create the schema - gis - and set the search-path before \i postgis.sql command, or edit the postgis.sql file)

2. when dumping, ignore the gis schema = pg-dump -N gis database > database.dump

3. when recreating, create new database, import postgis (as in 1) then restore database.dump (psql newdatabase < database.dump)

Or some variant of the above - and I'd love to know / be shown a better way!

As a side benefit (If it helps,) I also use the gis schema for reasonably static GIS data - background maps etc. Then my backups don't include it, and are often much smaller for it, which helps going between machines.

cheers

Ben




On 09/04/2010, at 21:20 , Nicholas Bower wrote:

> I'm trying to create a new instance on a different platform of a postgis-enabled database, starting with just the schema definition.  What's the right way?  This doesn't work below - do I have to partition into separate schemas to have this work perhaps?  Thanks, Nick
> 
> [Solaris Postgis 1.3.4] pg_dump -scFc database > schema.sql
> 
> [Windows Postgis 1.5.1] pgrestore -d database schema.sql
> 
> End result - lots of errors and missing any tables containing postgis objects.  Note the hard coded c language function library paths below;
> 
> pg_restore: [archiver (db)] Error while PROCESSING TOC:
> pg_restore: [archiver (db)] Error from TOC entry 6; 2615 18201 SCHEMA wastac wastacad
> pg_restore: [archiver (db)] could not execute query: ERROR:  schema "wastac" already exists
>     Command was:
> CREATE SCHEMA wastac;
> pg_restore: [archiver (db)] Error from TOC entry 1223; 2612 17398 PROCEDURAL LANGUAGE plpgsql postgres
> pg_restore: [archiver (db)] could not execute query: ERROR:  language "plpgsql"
> already exists
>     Command was: CREATE PROCEDURAL LANGUAGE plpgsql;
> pg_restore: [archiver (db)] Error from TOC entry 1115; 0 0 SHELL TYPE box2d postgres
> pg_restore: [archiver (db)] could not execute query: ERROR:  type "box2d" already exists
>     Command was: CREATE TYPE box2d;
> pg_restore: [archiver (db)] Error from TOC entry 216; 1255 17477 FUNCTION st_box2d_in(cstring) postgres
> pg_restore: [archiver (db)] could not execute query: ERROR:  permission denied for language c
>     Command was: CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d
>     AS '/usr/local/postgis-1.3.4/lib/liblwgeom', 'BOX2DFLOAT4_in'
>     LAN...
> pg_restore: [archiver (db)] could not execute query: ERROR:  function public.st_box2d_in(cstring) does not exist
>     Command was: ALTER FUNCTION public.st_box2d_in(cstring) OWNER TO postgres;
> pg_restore: [archiver (db)] Error from TOC entry 218; 1255 17479 FUNCTION st_box2d_out(box2d) postgres
> pg_restore: [archiver (db)] could not execute query: ERROR:  permission denied for language c
>     Command was: CREATE FUNCTION st_box2d_out(box2d) RETURNS cstring
>     AS '/usr/local/postgis-1.3.4/lib/liblwgeom', 'BOX2DFLOAT4_out'
>     L...
> pg_restore: [archiver (db)] could not execute query: ERROR:  function public.st_box2d_out(box2d) does not exist
>     Command was: ALTER FUNCTION public.st_box2d_out(box2d) OWNER TO postgres;
> pg_restore: [archiver (db)] Error from TOC entry 1114; 1247 17475 TYPE box2d postgres
> 
> ...
> 
> pg_restore: [archiver (db)] could not execute query: ERROR:  relation "t_tile_geometry" does not exist
>     Command was: GRANT SELECT ON TABLE t_tile_geometry TO wastacportal;
> pg_restore: [archiver (db)] could not execute query: ERROR:  relation "t_tile_geometry" does not exist
>     Command was: GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE t_tile_geometry TO wastac;
> WARNING: errors ignored on restore: 1586
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users




More information about the postgis-users mailing list