Some advices for common programmers problems

Problem polegał na tym że wykonano przywrócenie bazy danych do nowo-założonej bazy ale nie z dumpa jednej bazy tylko z dumpall. W pg_dump_all znajdują się polecenia \connect które powodują że skrypt mimo że wywołany z parametrem innej bazy danych i tak połączy się z oryginalną i ją nadpisze, przez co dane pozostaną w tabelach niezmienione (chyba że sa puste) ale sekwncje ustawią się na starszą kopię.

pobranie z dumpa bazy edokumenty (z backapu pg_dump edokumenty edokumenty-23-06.sql)
$cat edokumenty-23-06.sql | grep setval > 2zepsute.txt

usunięcie zbędnych sekwencji ustawionych na 1
$cat 2zepsute.txt | grep -v 1, > 2zepsute2.txt

zamiana linii tak aby ustawiał na maksymalną wartość głównego klucza:
$vim 2zepsute2.txt
:%s/'\([a-z_]*\)_\([a-z_]\{6\}\)_seq’, [0-9]*/’\1_\2_seq’, (SELECT max(\2) FROM \1)/

czyli np.
SELECT pg_catalog.setval(’addresses_addrid_seq’, 37070, true);
zamieni na:
SELECT pg_catalog.setval(’addresses_addrid_seq’, (SELECT max(addrid) FROM addresses), true);