#3727 closed defect (invalid)
Hard upgrade failed - pg_restore: [archiver] could not find entry for ID 6
Reported by: | milosh | Owned by: | strk |
---|---|---|---|
Priority: | medium | Milestone: | PostGIS 2.3.3 |
Component: | build | Version: | 2.3.x |
Keywords: | Cc: |
Description
I'm trying to hard upgrade spatial db from:
PostgreSQL 9.3.16, compiled by Visual C++ build 1600, 64-bit POSTGIS="2.1.3 r12547" GEOS="3.4.2-CAPI-1.8.2 r3924" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.10.0, released 2013/04/24" LIBXML="2.7.8" LIBJSON="UNKNOWN" TOPOLOGY RASTER
to:
PostgreSQL 9.6.2, compiled by Visual C++ build 1800, 64-bit POSTGIS="2.3.2 r15302" GEOS="3.6.1-CAPI-1.10.1 r4317" PROJ="Rel. 4.9.1, 04 March 2015" GDAL="GDAL 2.1.3, released 2017/20/01" LIBXML="2.7.8" LIBJSON="0.12" TOPOLOGY RASTER
When running
perl "%PGINSTALL%\utils\postgis_restore.pl" "%BACKUPFILE%"
the command prints the following output:
Converting test_96_upgrade.backup to ASCII on stdout…
Reading list of functions to ignore… Writing manifest of things to read from dump file… Writing ASCII to stdout…
pg_restore: [archiver] could not find entry for ID 6
Done.
No data are restored in the target DB.
The modified manifest file differs only in:
+9; 2615 5665374 SCHEMA - topology postgres
Change History (5)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
Found the root cause:
Foreign Key constraint with new line in its name created by hand in the distant past by copypasting sql from wrapped terminal window.
ALTER TABLE "provoz_provozovna" ADD CONSTRAINT "infrastruktura_id_refs_id_4e49f6 6e" FOREIGN KEY ("infrastruktura_id") REFERENCES "provoz_infrastruktura" ("id")
This will appear as:
15128; 2606 5687308 FK CONSTRAINT public infrastruktura_id_refs_id_4e49f6 6e postgres
in the TOC file and the archiver will fail trying to lookup item ID "6" in the backup.
comment:3 by , 8 years ago
Had you reported this upstream ? It would be nice to make sure it's fixed by newer PostgreSQL versions (if not already fixed), leaving traces here for the next one who would stumble across this bug.
The following does not work either:
pg_restore -l test.backup > test.backup.lst
pg_restore -L test.backup.lst > test2.out
second pg_restore ends up with:
pg_restore: [archiver] could not find entry for ID 6