PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Processo di esecuzione delle funzioni Postgresql

Per motivi di sicurezza, pg_dump (o pg_restore) emette un comando che svuota search_path, quindi quando ripristini il processo viene eseguito con un percorso di ricerca vuoto. Ma non modifica affatto il corpo del testo della tua funzione ma lo emette così com'è, quindi non può modificarlo per specificare il nome completo della tabella. Quindi la funzione non riesce a trovare la tabella quando viene eseguita all'interno del processo che esegue il ripristino.

Puoi qualificare completamente il nome della tabella nella funzione, oppure puoi definire la funzione con SET search_path = public . Oppure puoi modificare il file dump per rimuovere la parte che cancella il percorso_ricerca, se non sei preoccupato per le implicazioni sulla sicurezza.