Postgresql – How am I supposed to update PostgreSQL on Windows, once installed, without manually installing new installers

patchingpostgresqlwindows

I have PostgreSQL 11.5 installed on Windows 10. It was installed with the EnterpriseDB installer, which is the only one which exists these days.

If I go to https://www.postgresql.org/download/windows/ , it links to two pages:

  1. One page with installers for Windows. I could manually click the 11.7 installer link and install it manually, but of course, I would go insane if I had to keep that up every time a new minor version is released.
  2. One page with ZIP versions for Windows. The same thing goes here. (Neither has any checksums mentioned anywhere, which is worrying.)

The installers and ZIP files use unpredictable paths. For example, this is the latest version:

https://get.enterprisedb.com/postgresql/postgresql-11.7-2-windows-x64.exe
http://get.enterprisedb.com/postgresql/postgresql-11.7-2-windows-x64-binaries.zip

(The ZIP archives are served over HTTP for some reason.)

As you can see, it says "postgresql-11.7-2" instead of "postgresql-11.7", so I cannot just first determine the latest minor version from the RSS feed and then directly fetch it from a known URL, since it uses an extra "-2" thing.

When trying to go directly to https://get.enterprisedb.com/postgresql/ to browse the files, I get an "Access denied" error in my browser.

Looking instead at the https://www.postgresql.org/ftp/ page, I found a "binary" subdir. However, it only has binaries for "solaris" (???) — nothing for Windows or any other OS.

People (including myself) are simply not going to be manually downloading and installing new installers all the time. As a result, I have been running outdated PG for a long time now, always postponing it every time I fail to figure out a sane way to update it without me having to manually do it as if it were the initial installation.

When "BigSQL" still used to provide an alternative to EnterpriseDB's PostgreSQL installer, I remember that they had some kind of custom utility which was able to update PostgreSQL from the installed copy, with a binary called "pgc" or something like that. I cannot find that in my EnterpriseDB installation dir of PostgreSQL, so I assume it was just a non-standard thing that BigSQL did. (If it's available as a third-party thing, that doesn't seem sensible to me.)

Is there really no way to update PostgreSQL (between minor versions, such as 11.5 => 11.7) from itself? Or at least some way to properly fetch the latest installer for a branch from the PostgreSQL website? And if the latter is possible, is there some flag I can use for the installer so that it doesn't bring up a whole GUI and just silently updates the already installed PostgreSQL?

Best Answer

You don't want your system to magically upgrade the database software, because that is always downtime (typically short, but still).

You have to take the time to plan and schedule it. It's not all that complicated as you present it.

Also, as detailed in the answer to this question, there are sometimes additional tasks to do that require reading the release notes. These tasks can be automated, but you still have to plan for each minor release.