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

Stefan Schwarzer stefan.schwarzer at grid.unep.ch
Mon Apr 21 02:47:16 PDT 2008


Oh right! I totally forgot about that one. Yes, here I am, the first  
one you've seen, who installed postgres not into public schema, but  
into one I called postgis, to separate it from the rest, and being  
able to easily drop and re-create public schema for example...

Gush, I fell as if I have gotton Alzheimer... Too much stuff to  
maintain, to be aware of, etc....

Thanks for your so valuable information!

Stef

On Apr 21, 2008, at 10:55 AM, Paragon Corporation wrote:

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