Donc, le commentaire du code source à /src/ bin/pg_upgrade/file.c#L243
/* fopen() file with no group/other permissions */
m'a donné une idée.
J'ai créé un dossier temporaire sur C:\temp et donné Write autorisations à Tout le monde , puis a exécuté pg_upgrade à partir de ce répertoire, c'est-à-dire
C:\temp>C:\Apps\postgresql\pgsql-9.5.0\bin\pg_upgrade.exe --old-datadir=E:\PGSQL_data --new-datadir=E:\PGSQLData\pgsql-9.5 --old-bindir=C:\Apps\postgresql\pgsql-9.4.5.3\bin --new-bindir=C:\Apps\postgresql\pgsql-9.5.0\bin
Alors qu'avant j'essayais d'exécuter pg_upgrade depuis le répertoire de travail %PGSQL%\bin
qui n'avait pas d'autorisations d'écriture sur Tout le monde.
Maintenant, je ne reçois pas le cannot write to log file pg_upgrade_internal.log
erreur plus.
La documentation
dire en fait pg_upgrade requires write permission in the current directory.