Acabo de actualizar Postgres 10.0 a 10.1 y fue una actualización muy rápida y fácil.
Descargué los binarios de https://www.enterprisedb.com/download-postgresql-binaries y los descomprimí C:\postgres
, luego cambié el nombre del directorio pgsql
para pgsql-10.1
que pueda mantener las versiones anteriores hasta que se considere innecesario.
He copiado los archivos dll msvcp120.dll
y msvcr120.dll
al C:\postgres\pgsql-10.1\bin
porque prefiero así de sencilla instalación sobre el "instalador" que probablemente añade mucho más de lo necesario la hinchazón.
Luego usé este script por lotes simple que escribí en el pasado:
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%
Me encontré SELECT version();
con psql para confirmar la versión antigua:
postgres=# select version();
-[ RECORD 1 ]-------------------------------------------------------
version | PostgreSQL 10.0, compiled by Visual C++ build 1800, 64-bit
Luego ejecuté el script por lotes anterior que instaló un servicio llamado postgres-10.1
.
Detuve el servicio anterior y lo configuré Startup Type
en Disabled
, y comencé el nuevo servicio.
La ejecución de SELECT version();
nuevo en psql confirmó la actualización (tuve que ejecutarla dos veces debido a que la conexión se interrumpió cuando detuve el servidor anterior):
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
Tenga en cuenta que actualizar una versión principal requiere actualizar el directorio de datos con pg_upgrade
o algún otro método, pero para una actualización menor, este método funcionó de maravilla.