1. Home
  2. Hospedagem de Sites
  3. Atualização do Banco de Dados PostgreSQL

Atualização do Banco de Dados PostgreSQL

Neste artigo veremos como atualizar  bases com obsolescência do banco de dados PostgreSQL.

Recentemente realizamos no servidor de banco, a atualização para a versão 15.4 do PostgreSQL.

Essa versão traz mais estabilidade, melhorias no processamento de consultas e novos recursos para gerenciar o modelo de dados do seu banco.

Saiba mais sobre a versão 15.4 em https://www.postgresql.org/docs/release/15.4/.

Pontos de atenção em sua base de dados

Nesta migração manteremos a configuração atual do Encondig e Collate do(s) Banco de Dados. Porém, é recomendado fazer a atualização desta configuração de linguagem para esta versão do PostgreSQL.
Outro ponto. Caso utilize o oid como chave PK em sua(s) tabela(s) é altamente recomendado que faça a atualização para removê-lo. Desde a versão 12 do PostgreSQL este objeto não está mais acessível e as novas versões não o aceitam como constrain de chave primária.
Segue abaixo um pequeno resumo sobre o assunto:

Removendo colunas com OIDS no POSTGRESQL

A partir da versão 12, o PostgreSQL deixa de suportar o uso da coluna oculta “OID” ou “Object Identifier”, que até então era opcional em tabelas normais, e torna-se uma coluna explícita nas tabelas do catálogo do sistema.
Se você nem sabe que a coluna está, ou não o utiliza e já tem sua própria chave primária (PK), então você só precisa remover a coluna OID com um simples comando como:
ALTER TABLE minha_tabela SET WITHOUT OIDS;

Agora, se utiliza esta coluna em sua(s) tabela(s) como uma chave artificial é recomendado criar uma nova coluna com nome de sua preferência.
Neste caso é necessário seguir o passo-a-passo abaixo. Você pode utilizar estes comandos, ou buscar outra maneira para esta atualização:

  • Criar a coluna ID;
  • Ajustar a coluna para que novas linhas recebam um novo número automaticamente a partir do último número da coluna OID;
  • Popular a coluna ID com os valores da coluna OID;
SELECT coalesce(max(oid)::integer,0) + 1 FROM minha_tabela;

ALTER TABLE minha_tabela ADD COLUMN id integer GENERATED BY DEFAULT AS IDENTITY (START WITH 12345);
  • Alterar a tabela para que a coluna ID se torne uma chave primária (PK);
UPDATE minha_tabela SET id = OID;

ALTER TABLE minha_tabela ADD PRIMARY KEY (id);
  • Por fim remover a coluna OID.
ALTER TABLE minha_tabela SET WITHOUT OIDS;
Importante!

O SQL_ASCII não exige que os dados armazenados no banco de dados tenham qualquer codificação específica e, portanto, essa escolha apresenta riscos de mau comportamento dependente da localidade. O uso desta combinação de configurações está obsoleto e pode algum dia ser totalmente proibido.
Fonte: https://www.postgresql.org/docs/15/multibyte.html

Aproveite!

Que tal conhecer nosso servidor VPS Locaweb. Clique aqui e saiba mais.

Este artigo foi útil ?

Artigos relacionados