PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

entier hors plage et espace disque restant trop petit pour convertir l'id en bigint et autres solutions

Les commentaires de Scott Marlowe et Vao Tsun ont fonctionné :

sur le serveur (linux) ouvrir un terminal

naviguez jusqu'à l'emplacement souhaité du nouvel espace de noms

créer un répertoire :mkdir dirname

donner la propriété à postgres :chown postgres:postgres dirname

créer une table :CREATE TABLESPACE new_tbl_space LOCATION '/path/dirname'

placez la table dans le tablespace :alter table tbl set tablespace '/path/dirname'

faites ce qui occupait autant d'espace disque :ALTER TABLE tbl ALTER COLUMN id TYPE BIGINT;

redéfinissez le tablespace :alter table tbl set tablespace pg_default

supprimer le tablespace :je l'ai fait dans pgadmin4 dans les Tablespaces noeud/objet

(C'était de mémoire. Faites-moi savoir si j'ai raté quelque chose.)

Edit :Cela a pour effet secondaire de réécrire l'intégralité de la table comme un vide complet, libérant ainsi tout espace disque mort.