From 706b1c8af755683677218fcab35acf10c9dc1bc30a65df83e04db6a8490c7d0d Mon Sep 17 00:00:00 2001 From: Reinhard Max Date: Mon, 15 May 2023 14:18:48 +0000 Subject: [PATCH] - Overhaul README.SUSE and move it from the binary package to the noarch wrapper package. OBS-URL: https://build.opensuse.org/package/show/server:database:postgresql/postgresql?expand=0&rev=147 --- postgresql-README | 3 ++ postgresql-README.SUSE | 99 ++++++++++++++++++++++++++++++++++++++++++ postgresql.changes | 6 +++ postgresql.spec | 9 +++- 4 files changed, 115 insertions(+), 2 deletions(-) create mode 100644 postgresql-README create mode 100644 postgresql-README.SUSE diff --git a/postgresql-README b/postgresql-README new file mode 100644 index 0000000..27127c6 --- /dev/null +++ b/postgresql-README @@ -0,0 +1,3 @@ +This is a dummy package to provide a dependency on the default +PostgreSQL version. For further information see the following file in +the postgresql package: /usr/share/doc/packages/postgresql/README.SUSE diff --git a/postgresql-README.SUSE b/postgresql-README.SUSE new file mode 100644 index 0000000..d975b7c --- /dev/null +++ b/postgresql-README.SUSE @@ -0,0 +1,99 @@ +PostgreSQL packages openSUSE and SUSE Linux Enterprise Server +============================================================= + +This section describes the RPM package layout for PostgreSQL at +SUSE. + +In certain situations (see "Upgrading PostgreSQL" below) it is needed +to have more than one version of PostgreSQL installed on a system at +the same time. For that SUSE has put the major version number into the +name of the package containing the respective PostgreSQL binaries, +e.g. postgresql14 or postgresql15. The package set for each major +version further consists of multiple subpackages containing different +aspects of a PostgreSQL installation such as postgresql14-server, or +postgresql15-contrib. + +Inside the packages the files are moved from their standard locations +to a versioned location such as /usr/lib/postgresql14/bin or +/usr/lib/postgresql15/bin to avoid file conflicts. The +update-alternatives mechanism is used to create and maintain symbolic +links that cause one version (by default the highest installed +version) to re-appear in the standard locations. + +There is also a set of unversioned packages (postgresql, +postgresql-server, etc.) that contains some common stuff that is +needed for all versions, like dependencies, scripts, or this +README. These packages also define the default version for a SUSE +product by recommending the respective binary packages. + +By default, database data are stored under /var/lib/pgsql/data on SUSE +Linux. + +Unix-Domain Socket Directory +============================ + +Traditionally a PostgreSQL server puts its unix domain sockets for +local client connections into the /tmp directory. + +Upgrading PostgreSQL +==================== + +PostgreSQL databases are compatible among minor versions of the same +major version (e.g. 14.1, 14.2, 14.3), but need migration when +switching to a new major version (e.g. 14.x to 15.y). + +Since version 9.1 PostgreSQL comes with the pg_upgrade tool that +simplifies and speeds up the migration of a PostgreSQL installation to +a new major version. Starting at version 11 logical replication +between two server instances provides anoter way of migrating a +PostgreSQL database to a new major version with minimal downtimes. +Before version 9.1 dump and restore was needed which is much slower, +but might still be usful in certain upgrade situations. + +The following text will only explain migration through pg_upgrade. For +the other variants, please refer to the original documentation online +or in the respective postgresqlXX-docs package. + +pg_upgrade needs to have the server binaries of both versions +available, so e.g. for migrating from version 14 to 15 both, +postgresql14-server and postgresql15-server need to be installed. + + + +The following preconditions have to be fulfilled before data migration +can be started: + + 1. If not already done, the packages of the old PostgreSQL version + must be upgraded to the new packaging scheme through a maintenance + update. + + 2. The packages of the new PostgreSQL major version need to be + installed. As pg_upgrade is contained in the contrib subpackage, that + one has to be installed as well, at least for the migration period. + + 3. Unless pg_upgrade is used in link mode, the server must have + enough free disk space to temporarily hold a copy of the database + files. If the database instance was installed in the default + location, the needed space in megabytes can be determined by running + the follwing command as root: "du -hs /var/lib/pgsql/data". If space + is tight, it might help to run the "VACUUM FULL" SQL command on each + database in the instance to be migrated, but be aware that it might + take very long. + +The latest upstream documentation for pg_upgrade including step by +step instructions for performing a database migration can be found +online under https://www.postgresql.org/docs/current/pgupgrade.html , +or locally under +file:///usr/share/doc/packages/postgresqlXX/html/pgupgrade.html , if +the postgresqlXX-docs package is installed. XX is a place holder for +the respective major version here. + +NOTE: The online documentation starts with explaining how you can +install PostgreSQL from the upstream sources (which is not necessary +when you install the SUSE RPMs) and also uses other directory names +(/usr/local instead of the update-alternatives based path as described +above). + +For background information about the inner workings of pg_upgrade and +a performance comparison with the old dump and restore method, see +http://momjian.us/main/writings/pgsql/pg_upgrade.pdf . diff --git a/postgresql.changes b/postgresql.changes index ef37aeb..1d2dc75 100644 --- a/postgresql.changes +++ b/postgresql.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon May 15 14:17:11 UTC 2023 - Reinhard Max + +- Overhaul README.SUSE and move it from the binary package to the + noarch wrapper package. + ------------------------------------------------------------------- Mon Mar 27 17:10:16 UTC 2023 - Reinhard Max diff --git a/postgresql.spec b/postgresql.spec index 709ec9b..4154b9d 100644 --- a/postgresql.spec +++ b/postgresql.spec @@ -84,6 +84,8 @@ Source6: postgresql-script Source7: postgresql-install-alternatives Source8: postgresql-extensions-macros Source9: postgresql.sysusers +Source10: postgresql-README.SUSE +Source11: postgresql-README %if 0%{?suse_version} > 1100 %define fwdir /etc/sysconfig/SuSEfirewall2.d/services @@ -322,10 +324,13 @@ and triggers. %prep %build + %if %{with sysusers} %sysusers_generate_pre %{SOURCE9} %{name}-server %{name}-server.conf %endif -echo "This is a dummy package to provide a dependency on the default PostgreSQL version." > README + +cp %{SOURCE10} README.SUSE +cp %{SOURCE11} README %install mkdir -p %buildroot/var/lib/pgsql/ @@ -456,7 +461,7 @@ fi %files %defattr(-,root,root,-) -%doc README +%doc README.SUSE %dir /usr/share/postgresql /usr/share/postgresql/install-alternatives