Ir ao conteúdo

Posts recomendados

Postado

Boa tarde, alguém poderia me dizer se posso migrar a versão do Bando de dados PostgreSQL 8.3.23 para o PostgreSQL 9.6.23?
Se é possível, alguém poderia me dizer se tem alguma alteração em funções ou na classe de operadores , estou com um problema na criação de view onde está apresentando erro, como descrevo aqui:
pg_restore: [arquivador (bd)] could not execute query: ERROR:  function array_agg(character varying) is not unique (o erro é na função usada array_agg) qual  funções de agregação posso substituir seria string_agg?
Se alguém sabe de algum site que posso me orientar sobre essa migração, com os pré-requisitos e as alterações que preciso realizar para que a migração seja com sucesso.
Outra coisa, eu utilizo o JBOSS para fazer a comunicação entre o meu ERP e o Postgresql, com essa nova versão precisa atualizar o JBOSS? Qual driver eu tenho que usar?
Fico grato se alguém puder me ajudar com essa questão.
Obrigado!

 

OBS: estou rodando esse script : WHERE array_agg(COALESCE(r.op_tipo, ''::character varying)) @> ARRAY['P'::text]::character varying[] THEN 1

Erro na função array_agg:

ERROR: function array_agg(character varying) is not unique

LINE 8: WHEN array_agg(COALESCE(r.op_tipo, ''::character...

          

Faço a substituição pela função string_agg

ERROR: function string_agg(character varying) does not exist

Se eu tiro o COALESCE:

ERROR: operator does not exist: text @> character varying[]

LINE 8: ...WHEN string_agg(r.op_tipo, ''::character varying) @> ARRAY['...

 

Tentei com a função jsonb_object_agg, o mesmo erro ERROR: operator does not exist: jsonb @> character varying[]

Alguém pode me ajudar!

Obrigado

Postado

Em teoria um pg_dump poderia ser carregado para um banco de outra versão, mas como alternativa tem o pg_upgrade. Tente instalar o postgres 8.3 em outra máquina, restaure o backup do 8.3 (não deve dar erro, pois é a mesma versão), depois instale o 9.6 em paralelo, e use o pg_upgrade.

  • Curtir 1
Postado

Olá, Marco, Obrigado pelo retorno.
Fiz conforme me orientou, observei que utilizar o pg_upgrade só funciona até a versão 9.4 para quem tem essa versão 8.3.
O que eu fiz foi instalar outro cluster 9.3 para realizar o procedimento.
Só que apresenta esse erro: 

You will need to rebuild the new server with configure option

--disable-integer-datetimes or get server binaries built with those

options.

Isso se refere a formato de armazenamento de data-hora que não é compatível.
Rodei o pg_controldata na base de dados 8.3 mostra o tipo de data/hora numeros de pontos flutuantes
na base 9.3 mostra inteiros de 64 bits.
Como posso arrumar isso já que esse formato não corresponde nas duas bases utilizando o pg_upgrade?

Aguardo seu retorno!

Obrigado!
 

Postado

Tente fazer o backup do banco original com o pg_dumpall, e para restaurar esse backup na máquina destino, use (substitua backup.dmp pelo caminho e nome do arquivo de backup):
 

psql < backup.dmp

ou

psql -f backup.dmp

 

O primeiro comando deve funcionar sem problemas, se você estiver usando linux. Eu particularmente nunca utilizei o pg_restore, sempre restaurei dumps usando o psql para carregar o arquivo de dump.

  • 2 semanas depois...
Postado

Bom dia, Marco,

 

Estou usando Windows,

Eu não terei que alterar algum parâmetro de algum arquivo config do postgres para desabilitar o armazenamento da data-hora e reconhecer o formato da versão 8.3?

Se voce puder me ajudar nisso, agradeço!

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!