したがって、 /src/のソースコードコメントbin / pg_upgrade / file.c#L243
/* fopen() file with no group/other permissions */
アイデアをくれました。
C:\ tempに一時フォルダを作成し、書き込みを指定しました 全員へのアクセス許可 、次にそのディレクトリからpg_upgradeを実行しました。つまり、
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
以前は、作業ディレクトリ%PGSQL%\bin
からpg_upgradeを実行しようとしていました。 全員への書き込み権限がありませんでした。
cannot write to log file pg_upgrade_internal.log
が取得されません エラーはもうありません。
ドキュメント
実際には、pg_upgrade requires write permission in the current directory.