Nach langem Suchen habe ich folgendes gefunden:
Es gibt tatsächlich nur eine Spalte, die mit psql bestätigt werden kann. Verwenden Sie jedoch den Befehl pg_dump -st names <databasename> Von bash bemerkte ich, dass 2 Sequenzen definiert wurden, die der ID-Spalte zugeordnet waren:public.names_id_seq und public.names_id_seq1 .
Dies kann auch durch Ausführen von SELECT c.relname FROM pg_class c WHERE c.relkind = 'S'; bestätigt werden aus psql, wo beide Sequenzen auftauchen.
Versucht man public.names_id_seq1 zu löschen man erhält den Fehler ERROR: cannot drop sequence apis_id_seq1 because column id of table apis requires it .
Die Lösung ist die erste Sequenz mit DROP SEQUENCE names_id_seq; zu löschen Nach dem Aktualisieren von pgAdmin4 war die zweite Spalte weg.
TL;DR
-
Führen Sie
SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';aus und identifizieren Sie doppelte Sequenzen (dh diejenigen, bei denen es eine Version mit und eine ohne eine 1 am Ende gibt) -
Löschen Sie die überflüssige Sequenz mit
DROP SEQUENCE <sequenceName_seq>;(nur die ohne 1 am Ende kann gelöscht werden) -
Aktualisieren Sie pgAdmin4