PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

numero intero fuori intervallo e spazio su disco rimanente troppo piccolo per convertire id in bigint e altre soluzioni

I commenti di Scott Marlowe e Vao Tsun hanno funzionato:

sul server (linux) apri un terminale

vai a dove vuoi che sia il nuovo spazio dei nomi

crea una directory:mkdir dirname

dai la proprietà a postgres:chown postgres:postgres dirname

crea tabella:CREATE TABLESPACE new_tbl_space LOCATION '/path/dirname'

metti la tabella nel tablespace:alter table tbl set tablespace '/path/dirname'

fare ciò che occupava così tanto spazio su disco:ALTER TABLE tbl ALTER COLUMN id TYPE BIGINT;

cambia il tablespace indietro:alter table tbl set tablespace pg_default

rimuovi il tablespace:l'ho fatto in pgadmin4 in Tablespaces nodo/oggetto

(Era a memoria. Fammi sapere se mi sono perso qualcosa.)

Modifica:questo ha l'effetto collaterale di riscrivere l'intera tabella come un vuoto completo liberando spazio su disco morto.