Je viens de mettre à niveau Postgres 10.0 vers 10.1 et ce fut une mise à niveau très rapide et facile.
J'ai téléchargé les fichiers binaires depuis https://www.enterprisedb.com/download-postgresql-binaries et les ai décompressés C:\postgres
, puis j'ai renommé le répertoire pgsql
pour pgsql-10.1
que je puisse conserver les anciennes versions jusqu'à ce qu'elles soient jugées inutiles.
J'ai copié les fichiers dll msvcp120.dll
et msvcr120.dll
à C:\postgres\pgsql-10.1\bin
parce que je préfère que l' installation simple sur le « Installer » qui ajoute probablement beaucoup plus ballonnement que nécessaire.
J'ai ensuite utilisé ce simple script batch que j'ai écrit dans le passé:
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%
J'ai couru SELECT version();
en psql pour confirmer l'ancienne version:
postgres=# select version();
-[ RECORD 1 ]-------------------------------------------------------
version | PostgreSQL 10.0, compiled by Visual C++ build 1800, 64-bit
J'ai ensuite exécuté le script batch ci-dessus qui a installé un service nommé postgres-10.1
.
Je me suis arrêté l'ancien service et mis son Startup Type
à Disabled
, et a commencé le nouveau service.
Une SELECT version();
nouvelle exécution dans psql a confirmé la mise à niveau (j'ai dû l'exécuter deux fois en raison de l'interruption de la connexion lorsque j'ai arrêté l'ancien serveur):
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
Gardez à l'esprit que la mise à niveau d'une version majeure nécessite la mise à jour du répertoire de données avec pg_upgrade
ou une autre méthode, mais pour une mise à niveau mineure, cette méthode a fonctionné comme un charme.