Nicola Contu wrote:
> we recently moved from postgres 9.6.6 to 10.4
> 
> We perform a pg_dump in production to restore daily in a preprod env.
> This process used to work perfectly, but now we have a tiny problem.
> 
> We first restore data, we perform a vacuum and then we restore matviews.
> Restoring matviews now we have :
> 
> pg_restore: [archiver (db)] Error while PROCESSING TOC:
> pg_restore: [archiver (db)] Error from TOC entry 23090; 0 1912379424 
> MATERIALIZED VIEW DATA matview_vrs_request_sla postgres
> pg_restore: [archiver (db)] could not execute query: ERROR:  relation 
> "all_days" does not exist
> LINE 3: from all_days
>              ^
> QUERY:
> select count(*)::numeric
> from all_days
> where (("date" between $2::date and $1::date) or ("date" between $1::date and 
> $2::date))
> and dow not in (0,6)
> 
> CONTEXT:  SQL function "bdays" during inlining
>     Command was: REFRESH MATERIALIZED VIEW public.matview_vrs_request_sla;
> 
> The relation is there, in fact if I go there when I get in to the office, the 
> same command works.
> 
> I'm not sure why it does not work here, this seems really strange to me.

I suspect that it has to do with the recent security fixes around the "public" 
schema.

Try to ALTER the materialized view so that it refers to "public.all_days"
rather than "all_days".

Yours,
Laurenz Albe
-- 
Cybertec | https://www.cybertec-postgresql.com

Reply via email to