[postgis-devel] Fixing pg_upgrade woes for PostGIS users

Regina Obe lr at pcorp.us
Wed Aug 16 17:35:55 PDT 2017


I was thinking about the issues that Devrim raised about how hard it is for
people to upgrade from one PostGIS minor version to another when the same
PostGIS minor is not installed in both the old and new cluster.

As I see it, the main reason this not possible is because we change the
library name from minor to minor.

Solution, let's stop doing that and only change the name from Major version
to Major version.  Let's also agree that we will not bump the major version
to 3 unless is we change the on-disc format.
Which according to Paul in theory should not happen for a really really long
time.  So long, I would have died of natural causes by then.

Now I would still like the Minor feature we had of the library being called
-- postgis-2.3   for development reasons so I can install same version of
PostGIS in same cluster.
However such a feature to be honest is really only useful for testing and
development.

So how do I eat my cake and still make life easy for people who don't like
the taste of my cake.


Add a switch to configure called:   --use-minor-versioning

Which by default from 2.4 moving forward would default to false.

The result of it being false would be 

The PostGIS 2.4 library will have a library name of  postgis-2.dll,
postgis-2.so, postgis-2.whatever  rtpostgis-2.whatever

I also propose we add such a feature in PostGIS 2.3.4 on, people might have
a bit of issue with this, so thoughts welcome.

So that means when people upgrade to postgis 2.3.4, the new library will
point at the new naming  postgis-2.so, rtpostgis-2.so

And so when they pg_upgrade to a PostgreSQL 10 which will only have PostGIS
2.4.0, it won't break.

They'll just need to do a 

ALTER EXTENSION UPDATE TO 2.4.0;  

After the PostgreSQL 10 migration.


Anyone have thoughts on this.  Anything I'm missing?


Thanks,
Regina




More information about the postgis-devel mailing list