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

inteiro fora do intervalo e espaço em disco restante muito pequeno para converter id em bigint e outras soluções


Os comentários de Scott Marlowe e Vao Tsun funcionaram:

no servidor (linux) abra um terminal

navegue para onde deseja que o novo namespace seja

crie um diretório:mkdir dirname

dê propriedade ao postgres:chown postgres:postgres dirname

criar tabela:CREATE TABLESPACE new_tbl_space LOCATION '/path/dirname'

coloque a tabela no tablespace:alter table tbl set tablespace '/path/dirname'

faça o que estava ocupando muito espaço em disco:ALTER TABLE tbl ALTER COLUMN id TYPE BIGINT;

mude o tablespace de volta:alter table tbl set tablespace pg_default

remova o tablespace:eu fiz isso no pgadmin4 no Tablespaces nó/objeto

(Isso foi de memória. Deixe-me saber se eu perdi alguma coisa.)

Editar:Isso tem o efeito colateral de reescrever a tabela inteira como um vácuo completo, liberando qualquer espaço em disco morto.