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
私はおそらく必要なよりもはるかに肥大化を追加し、「インストーラ」を超えるという簡単なインストールを好むので。
次に、私が過去に書いたこの単純なバッチスクリプトを使用しました。
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で再度実行すると、アップグレードが確認されました(古いサーバーを停止したときに接続が中止されたため、2回実行する必要がありました)。
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
またはその他の方法でデータディレクトリを更新する必要がありますが、マイナーアップグレードの場合、この方法は魅力的でした。