void-linux / void-packages

The Void source packages collection
https://voidlinux.org
Other
2.52k stars 2.12k forks source link

Add multiple Postgresql version #243

Closed arete closed 4 years ago

arete commented 6 years ago

For next postgresql update(version 10), is correct add an alternative package postgresql9.6 to fix dump/restore database procedure for update ? Or add an package postgresql upgrade like to https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/postgresql-old-upgrade

CameronNemo commented 5 years ago

@xtraeme

obunden commented 4 years ago

@Hoshpak Can this be closed since we only seem to support version 9.x? If there are no plans on including the newer ones that is.

CameronNemo commented 4 years ago

We do want newer versions.

Hoshpak commented 4 years ago

Indeed, someones just has to do it.

obunden commented 4 years ago

Ok roger that, is the issue how to support different versions at once? Or is it just that it just hasn't been done by anyone yet?

Hoshpak commented 4 years ago

Both, since an automatic upgrade is not possible, we should figure out how to provide several versions at once so people who want to upgrade can do so manually. It shouldn't be hard if all libraries are versioned properly so they don't conflict. My guess is that no one did it yet since relatively few people run postgres servers on Void so there's not much interest in it.

CameronNemo commented 4 years ago

There are large sets of unversioned libraries and other assets. The mentioned Arch package installs into /opt https://www.archlinux.org/packages/extra/x86_64/postgresql-old-upgrade/.

/usr/lib/postgresql/ascii_and_mic.so
/usr/lib/postgresql/cyrillic_and_mic.so
/usr/lib/postgresql/dict_snowball.so
/usr/lib/postgresql/euc2004_sjis2004.so
/usr/lib/postgresql/euc_cn_and_mic.so
/usr/lib/postgresql/euc_jp_and_sjis.so
/usr/lib/postgresql/euc_kr_and_mic.so
/usr/lib/postgresql/euc_tw_and_big5.so
/usr/lib/postgresql/latin2_and_win1250.so
/usr/lib/postgresql/latin_and_mic.so
/usr/lib/postgresql/libpqwalreceiver.so
/usr/lib/postgresql/plpgsql.so
/usr/lib/postgresql/utf8_and_ascii.so
/usr/lib/postgresql/utf8_and_big5.so
/usr/lib/postgresql/utf8_and_cyrillic.so
/usr/lib/postgresql/utf8_and_euc2004.so
/usr/lib/postgresql/utf8_and_euc_cn.so
/usr/lib/postgresql/utf8_and_euc_jp.so
/usr/lib/postgresql/utf8_and_euc_kr.so
/usr/lib/postgresql/utf8_and_euc_tw.so
/usr/lib/postgresql/utf8_and_gb18030.so
/usr/lib/postgresql/utf8_and_gbk.so
/usr/lib/postgresql/utf8_and_iso8859.so
/usr/lib/postgresql/utf8_and_iso8859_1.so
/usr/lib/postgresql/utf8_and_johab.so
/usr/lib/postgresql/utf8_and_sjis.so
/usr/lib/postgresql/utf8_and_sjis2004.so
/usr/lib/postgresql/utf8_and_uhc.so
/usr/lib/postgresql/utf8_and_win.so
/usr/share/postgresql/conversion_create.sql
/usr/share/postgresql/extension/plperl--1.0.sql
/usr/share/postgresql/extension/plperl--unpackaged--1.0.sql
/usr/share/postgresql/extension/plperl.control
/usr/share/postgresql/extension/plperlu--1.0.sql
/usr/share/postgresql/extension/plperlu--unpackaged--1.0.sql
/usr/share/postgresql/extension/plperlu.control
/usr/share/postgresql/extension/plpgsql--1.0.sql
/usr/share/postgresql/extension/plpgsql--unpackaged--1.0.sql
/usr/share/postgresql/extension/plpgsql.control
/usr/share/postgresql/extension/plpython2u--1.0.sql
/usr/share/postgresql/extension/plpython2u--unpackaged--1.0.sql
/usr/share/postgresql/extension/plpython2u.control
/usr/share/postgresql/extension/plpythonu--1.0.sql
/usr/share/postgresql/extension/plpythonu--unpackaged--1.0.sql
/usr/share/postgresql/extension/plpythonu.control
/usr/share/postgresql/extension/pltcl--1.0.sql
/usr/share/postgresql/extension/pltcl--unpackaged--1.0.sql
/usr/share/postgresql/extension/pltcl.control
/usr/share/postgresql/extension/pltclu--1.0.sql
/usr/share/postgresql/extension/pltclu--unpackaged--1.0.sql
/usr/share/postgresql/extension/pltclu.control
/usr/share/postgresql/information_schema.sql
/usr/share/postgresql/pg_hba.conf.sample
/usr/share/postgresql/pg_ident.conf.sample
/usr/share/postgresql/pg_service.conf.sample
/usr/share/postgresql/postgres.bki
/usr/share/postgresql/postgres.description
/usr/share/postgresql/postgres.shdescription
/usr/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/recovery.conf.sample
/usr/share/postgresql/snowball_create.sql
/usr/share/postgresql/sql_features.txt
/usr/share/postgresql/system_views.sql
/usr/share/postgresql/timezonesets/Africa.txt
/usr/share/postgresql/timezonesets/America.txt
/usr/share/postgresql/timezonesets/Antarctica.txt
/usr/share/postgresql/timezonesets/Asia.txt
/usr/share/postgresql/timezonesets/Atlantic.txt
/usr/share/postgresql/timezonesets/Australia
/usr/share/postgresql/timezonesets/Australia.txt
/usr/share/postgresql/timezonesets/Default
/usr/share/postgresql/timezonesets/Etc.txt
/usr/share/postgresql/timezonesets/Europe.txt
/usr/share/postgresql/timezonesets/India
/usr/share/postgresql/timezonesets/Indian.txt
/usr/share/postgresql/timezonesets/Pacific.txt
/usr/share/postgresql/tsearch_data/danish.stop
/usr/share/postgresql/tsearch_data/dutch.stop
/usr/share/postgresql/tsearch_data/english.stop
/usr/share/postgresql/tsearch_data/finnish.stop
/usr/share/postgresql/tsearch_data/french.stop
/usr/share/postgresql/tsearch_data/german.stop
/usr/share/postgresql/tsearch_data/hungarian.stop
/usr/share/postgresql/tsearch_data/hunspell_sample.affix
/usr/share/postgresql/tsearch_data/hunspell_sample_long.affix
/usr/share/postgresql/tsearch_data/hunspell_sample_long.dict
/usr/share/postgresql/tsearch_data/hunspell_sample_num.affix
/usr/share/postgresql/tsearch_data/hunspell_sample_num.dict
/usr/share/postgresql/tsearch_data/ispell_sample.affix
/usr/share/postgresql/tsearch_data/ispell_sample.dict
/usr/share/postgresql/tsearch_data/italian.stop
/usr/share/postgresql/tsearch_data/norwegian.stop
/usr/share/postgresql/tsearch_data/portuguese.stop
/usr/share/postgresql/tsearch_data/russian.stop
/usr/share/postgresql/tsearch_data/spanish.stop
/usr/share/postgresql/tsearch_data/swedish.stop
/usr/share/postgresql/tsearch_data/synonym_sample.syn
/usr/share/postgresql/tsearch_data/thesaurus_sample.ths
/usr/share/postgresql/tsearch_data/turkish.stop
Chocimier commented 4 years ago

I tried once with goal to allow use pg_upgrade but I was not glad with results. This version is not even tested, I guess.

However, I take some notes that may be more useful.

arp242 commented 4 years ago

we should figure out how to provide several versions at once so people who want to upgrade can do so manually. It shouldn't be hard if all libraries are versioned properly so they don't conflict. My guess is that no one did it yet since relatively few people run postgres servers on Void so there's not much interest in it.

The easiest way to get this done is to create new postgres10, postgres11, and postgres12 packages which all conflict with each other. That's what FreeBSD does for example.

While allowing multiple versions to be installed side-by-side would be better, multiple conflicting versions would already be a vast improvement over the current situation. 9.6 will still be supported until Nov 2022, there are three new major releases (10, 11, and 12) that can't be easily used on Void right now, which is less than ideal.

rmboggs commented 4 years ago

The easiest way to get this done is to create new postgres10, postgres11, and postgres12 packages which all conflict with each other. That's what FreeBSD does for example.

My 2 cents if it matters: This makes sense, however, another approach to this could be similar to how the OpenBSD group deals with this. In that it has 2 ports, one for the current version and one for the previous version so that users could utilize pg_upgrade to migrate to the next major version if they wanted. Plus it would be less of a headache when postgresql versions reach the 20s. Just a thought...

Chocimier commented 4 years ago

Gentoo allows to install every major version simultaneously, will steal from there.

Chocimier commented 4 years ago

Version 12 is ready to test: #18121

cc @mustaqimM @bvdeenen

Chocimier commented 4 years ago

Added postgresql12, that allows to update from 9.6 with pg_upgrade.