Vì vậy, nhận xét mã nguồn tại / src / bin / pg_upgrade / file.c # L243
Tệp /* fopen() file with no group/other permissions */
đã cho tôi một ý tưởng.
Tôi đã tạo một thư mục tạm thời tại C:\ temp và đưa ra Viết quyền đối với Mọi người và sau đó chạy pg_upgrade từ thư mục đó, tức là
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
Trong khi trước khi tôi cố gắng chạy pg_upgrade từ thư mục làm việc %PGSQL%\bin
không có quyền Viết cho mọi người.
Bây giờ tôi không nhận được cannot write to log file pg_upgrade_internal.log
lỗi nữa.
tài liệu
thực sự nói rằng pg_upgrade requires write permission in the current directory.