[postgis-users] ERROR: type "postgis.geometry" is only a shell

Paragon Corporation lr at pcorp.us
Mon Apr 21 01:55:45 PDT 2008


Stefan,
 
Did you dump and restore on the same server.  From this error it looks
almost as if your Geometry datatype was put in schema called postgis rather
than public.

I've never seen anyone install PostGIS functions and types in anything but
the Public schema, although I suppose it is not a bad idea.

Anyrate I think this error usually happens if the Postgis functions and
types can't load usually because the path to the libraries is different than
where the original install was and the original paths were hard-coded rather
than using $libdir.

Solution would be to 
1) Create a clean database and install PostGIS in it  (looking at the above,
you very well may need to load the PostGIS functions and types in a schema
called postgis (you can do that by creating postgis schema, setting default
schema to that before you load the functions - I think though never tried)

2 a) Ideally just dump out the tables and restore the tables into the new db
- looks like you are using the compressed format option so I think you can
selectively pick objects to load with that option

Or 
B) Restoring over the created database too may just work as I figure your
postgis function calls will fail anyway because they are looking for the
binaries in the wrong place.

Hope that helps,
Regina


-----Original Message-----
From: postgis-users-bounces at postgis.refractions.net
[mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Stefan
Schwarzer
Sent: Monday, April 21, 2008 2:59 AM
To: PostGIS Users Discussion
Cc: William Kyngesburye
Subject: [postgis-users] ERROR: type "postgis.geometry" is only a shell

Hi,

I installed postgres & postgis (with Kyngchaos packages). Dumped the
database from the server:

	pg_dump -i -h <ip_address> -p 5432 -U postgres -F c -v -f dump.c.sql
<database>

and then re-stored:

	pg_restore -i -U postgres -d <database> -v dump.c.sql

But when it comes to the PostGIS data tables (like country boundaries), I
get this error message:

	pg_restore: creating TABLE admin01
	pg_restore: [archiver (db)] Error from TOC entry 6472; 1259 3178500
TABLE admin01 ss_admin
	pg_restore: [archiver (db)] could not execute query: ERROR:  type
"postgis.geometry" is only a shell
	LINE 8:     the_geom postgis.geometry,
	                     ^
	    Command was: CREATE TABLE admin01 (
	    gid integer NOT NULL,
	    cntry_name character varying(42),
	    cntry_code character varying(13),...
	pg_restore: [archiver (db)] could not execute query: ERROR:
relation "gis.admin01" does not exist
	    Command was: ALTER TABLE gis.admin01 OWNER TO ss_admin;


What is this? What can I do?

Thanks for any hints,

Stef
_______________________________________________
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