Właśnie zaktualizowałem Postgres 10.0 do 10.1 i było to bardzo szybkie i łatwe uaktualnienie.
Pobrałem pliki binarne z https://www.enterlictb.com/download-postgresql-binaries i rozpakowałem je C:\postgres
, a następnie zmieniłem nazwę katalogu pgsql
na, pgsql-10.1
aby móc zachować starsze wersje, dopóki nie uznam ich za niepotrzebne.
Skopiowane pliki dll msvcp120.dll
, a msvcr120.dll
do C:\postgres\pgsql-10.1\bin
dlatego, że wolę prostą instalację nad „Instalator”, które prawdopodobnie dodaje dużo więcej uwędzić niż potrzebne.
Następnie użyłem tego prostego skryptu wsadowego, który napisałem w przeszłości:
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%
Uruchomiłem SELECT version();
w psql, aby potwierdzić starą wersję:
postgres=# select version();
-[ RECORD 1 ]-------------------------------------------------------
version | PostgreSQL 10.0, compiled by Visual C++ build 1800, 64-bit
Następnie uruchomiłem skrypt wsadowy, powyżej którego zainstalowałem usługę o nazwie postgres-10.1
.
Przestałem starą usługę i ustawić jej Startup Type
się Disabled
i rozpoczęła nową usługę.
Uruchomiony SELECT version();
ponownie w psql zatwierdzeni uaktualnienie (musiał go uruchomić dwa razy ze względu na połączenie jest przerwane kiedy zatrzymał starego serwera):
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
Należy pamiętać, że aktualizacja głównej wersji wymaga aktualizacji katalogu danych za pomocą pg_upgrade
innej metody, ale w przypadku drobnej aktualizacji ta metoda działała jak urok.