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:[email protected]] On Behalf Of
Darrel Maddy
Sent: Wednesday, November 11, 2015 2:03 PM
To: PostGIS Users Discussion <[email protected]>
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
[email protected]
http://lists.osgeo.org/mailman/listinfo/postgis-users