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