PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Excluir definições de função ao despejar um banco de dados PostgreSQL


Pelo que sei, pg_dump e pg_dumpall não suporta tal restrição.

Você poderia mova todas as suas funções para um esquema dedicado que você pode excluir do dump assim:
pg_dump mydb -N function_schema > mydump.sql

Se você seguir esse caminho, poderá migrar funções para outro esquema assim:
ALTER FUNCTION myfunc() SET SCHEMA function_schema;

Nesse caso eu também adaptaria o search_path em postgresql.conf (e possivelmente nos padrões para bancos de dados e funções)
SET search_path = public,function_schema [,more schemas]

Como uma alternativa , você pode deixar as funções em seu esquema padrão public e não use esse esquema para mais nada. Coloque seus objetos em um ou mais esquemas separados. Isso deve facilitar a atualização do PostGis.

Pode ser uma boa ideia não use o public esquema para seus objetos. Eu costumo reservá-lo para PostGis ou outras extensões que instalam em public por padrão. Eu gosto de usar um esquema dedicado para cada aplicativo. Facilita a manutenção - incluindo backups e concessão de permissões.