Я щойно оновив Postgres 10.0 до 10.1, і це було дуже швидким і простим оновленням.
Я завантажив двійкові файли з https://www.enterprisedb.com/download-postgresql-binaries і розпакував їх C:\postgres, а потім перейменував у каталог, pgsqlщоб pgsql-10.1я міг зберігати старі версії до тих пір, поки не вважатимусь непотрібними.
Я скопіював файли DLL msvcp120.dllі msvcr120.dllв C:\postgres\pgsql-10.1\binтому , що я вважаю за краще , щоб простий установки над «Installer» , який , ймовірно , додає набагато більше наворотів , ніж це необхідно.
Потім я використав цей простий пакетний сценарій, про який писав у минулому:
set MAJOR_VERSION=10
set MINOR_VERSION=1
set SERVICE_NAME=pgsql-%MAJOR_VERSION%.%MINOR_VERSION%
set PGHOME=C:\postgres\%SERVICE_NAME%
set PGDATA=C:\postgres\pgdata%MAJOR_VERSION%
%PGHOME%\bin\pg_ctl.exe register -N %SERVICE_NAME% -U LocalSystem -S auto --pgdata=%PGDATA%
::: to unregister old service:
::%PGHOME%\bin\pg_ctl.exe unregister -N %SERVICE_NAME%
Я побіг SELECT version();у psql, щоб підтвердити стару версію:
postgres=# select version();
-[ RECORD 1 ]-------------------------------------------------------
version | PostgreSQL 10.0, compiled by Visual C++ build 1800, 64-bit
Потім я запустив пакетний скрипт, над яким встановив службу з назвою postgres-10.1.
Я зупинився старий сервіс і встановити його Startup Typeна Disabled, і почав нову послугу.
Запуск SELECT version();знову в psql підтвердив оновлення (довелося запустити його двічі через припинення з'єднання, коли я зупинив старий сервер):
postgres=# select version();
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.
postgres=# select version();
-[ RECORD 1 ]-------------------------------------------------------
version | PostgreSQL 10.1, compiled by Visual C++ build 1800, 64-bit
Майте на увазі, що для оновлення основної версії потрібне оновлення каталогу даних за допомогою pg_upgradeіншого способу, але для незначного оновлення цей метод спрацював як шарм.