Darrel,

 

That all looks right but it seems the alter function part is being wiped out

 

If this statement is working:

 

ALTER FUNCTION _raster_constraint_nodata_values(raster)

         SET search_path=pg_catalog,public,postgis;

 

Then that error shouldn't be happening.  

 

This would happen if you are doing clean restore, as I think the restore would 
drop the postgis extension and then recreate thus losing the alter function 
settings you just put in.

 

 

Are you doing a clean restore – if you are uncheck that (if you are in pgAdmin) 
 

 

 

If you are doing with via command-line, make sure to leave out the 

 

-c or  --clean 

 

Switches.

 

 

I have to test this out.  It's been a while since I restored the database I had 
this issue with.  So I may have missed something else.

 

 

Thanks,

Regina

 

 

 

 

From: postgis-users [mailto:postgis-users-boun...@lists.osgeo.org] On Behalf Of 
Darrel Maddy
Sent: Wednesday, November 11, 2015 2:03 PM
To: PostGIS Users Discussion <postgis-users@lists.osgeo.org>
Subject: Re: [postgis-users] restore problem

 

Dear Regina and Rich,

 

I tried to follow your instructions by doing the following:

 

 

1.       I redid the backup of my database excluding the public schema. This 
completed with an exit code 0 so I am assuming no problems.

 

2.       I created the ‘new’ database on my laptop and then added the postgis 
extension. All functions were there and the extension is in the Public schema.

 

3.       I then ran the following script

ALTER FUNCTION _raster_constraint_pixel_types(raster)

        SET search_path=pg_catalog,public,postgis;

      ALTER FUNCTION _raster_constraint_info_regular_blocking(name,name,name)

         SET search_path=pg_catalog,public,postgis;

      ALTER FUNCTION _raster_constraint_nodata_values(raster)

         SET search_path=pg_catalog,public,postgis;

      ALTER FUNCTION _raster_constraint_out_db(raster)

         SET search_path=pg_catalog,public,postgis;

 

4.  I then attempted the restore and unfortunately the same thing happened 
again .i.e

pg_restore: processing data for table "dems"

pg_restore: [archiver (db)] Error while PROCESSING TOC:

pg_restore: [archiver (db)] Error from TOC entry 3418; 0 94054 TABLE DATA dems 
postgres

pg_restore: [archiver (db)] COPY failed for table "dems": ERROR:  function 
st_bandmetadata(public.raster, integer[]) does not exist

LINE 1: ...(round(nodatavalue::numeric, 10))::numeric[] FROM st_bandmet...

                                                             ^

HINT:  No function matches the given name and argument types. You might need to 
add explicit type casts.

QUERY:   SELECT array_agg(round(nodatavalue::numeric, 10))::numeric[] FROM 
st_bandmetadata($1, ARRAY[]::int[]);

CONTEXT:  SQL function "_raster_constraint_nodata_values" during inlining

COPY dems, line 1: "1      
0100000100000000000000344000000000000034C0E0CCCCCCB1D517418066666692F80C41000000000000000000000000..."

pg_restore: executing SEQUENCE SET dems_rid_seq

 

Firstly, is this what you expected me to do or did I misunderstand? Secondly, 
does this mean that I have to do this for each of the _raster_constraint 
functions? (I think there are 16 of them)

 

Hopefully I am making progress.

 

Darrel

 

_______________________________________________
postgis-users mailing list
postgis-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/postgis-users

Reply via email to