Restaurar postgres Dump dá erros: os tipos não existem

1

Eu joguei um banco de dados de uma máquina Ubuntu antiga com o postgresql 8.4 wiandth postgis 1.5. Em um novo ubuntu 12.04 eu instalei o Postgresql 9.1 também com o postgis 1.5. (criou o postgis_template com postgis.sql e spatial_ref_sys.sql).

Quando eu restauro o despejo na nova máquina, os dados são compilados, mas recebo 25 mensagens de erro como estas

...    

pg_restore: [archiver (db)] Error from TOC entry 711; 1255 18533 FUNCTION gidx_in(cstring) postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  function public.gidx_in(cstring) does not exist
    Command was: DROP FUNCTION public.gidx_in(cstring);

pg_restore: [archiver (db)] Error from TOC entry 34; 1255 17743 FUNCTION geometry_send(geometry) postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  type "geometry" does not exist
    Command was: DROP FUNCTION public.geometry_send(geometry);

pg_restore: [archiver (db)] Error from TOC entry 33; 1255 17742 FUNCTION geometry_recv(internal) postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  function public.geometry_recv(internal) does not exist
    Command was: DROP FUNCTION public.geometry_recv(internal);

pg_restore: [archiver (db)] Error from TOC entry 31; 1255 17740 FUNCTION geometry_out(geometry) postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  type "geometry" does not exist
    Command was: DROP FUNCTION public.geometry_out(geometry);

pg_restore: [archiver (db)] Error from TOC entry 30; 1255 17739 FUNCTION geometry_in(cstring) postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  function public.geometry_in(cstring) does not exist
    Command was: DROP FUNCTION public.geometry_in(cstring);

pg_restore: [archiver (db)] Error from TOC entry 709; 1255 18529 FUNCTION geography_out(geography) postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  type "geography" does not exist
    Command was: DROP FUNCTION public.geography_out(geography);

Alguém pode explicar o que está acontecendo? E posso ignorar esses erros?

Obrigado! Com os melhores cumprimentos,

Toni

    
por t Book 25.12.2013 / 15:43

1 resposta

1

Você tem vários erros. Você precisa lê-los cuidadosamente e depois ler seu arquivo de despejo (encontre as linhas referenciadas nos erros acima e determine se o local onde esses erros estão ocorrendo é um problema sério, ou algo que você pode ignorar) - WE não pode dizer isso porque realmente não sabemos o que é importante em seu ambiente.

Pelo que vejo em suas mensagens de erro, parece que seu arquivo de despejo tenta limpar o conteúdo antigo do banco de dados ( DROP funções, tipos e tabelas) antes de realmente carregar os dados, portanto, se estiver restaurando para um sistema sem os dados existentes, você receberá erros quando tentar eliminar objetos que não existem. Se é isso que está acontecendo, você provavelmente não precisa se preocupar com os erros (embora você possa querer fazer um despejo sem os comandos de "limpeza" para uso futuro, assim você não os obtém - consulte o pg_dump man page para obter informações sobre como fazer isso).

Agora, se você começar a receber erros CRIANDO funções / procedimentos, é mais provável que eles sejam sérios e exijam investigação e correção.

    
por 25.12.2013 / 21:14