Akonadi/Postgres update: Difference between revisions

From KDE UserBase Wiki
(Marked this version for translation)
(Add missing database creation parameters and update numbers accordingly)
 
(2 intermediate revisions by one other user not shown)
Line 9: Line 9:


<!--T:3-->
<!--T:3-->
The '''initdb''' and '''pg_upgrade''' tools are required. Make sure these applications are available before following this guide.  
The '''initdb''' and '''pg_upgrade''' tools are required. Make sure these applications are available before following this guide. In openSUSE '''pg_upgrade''' is part of the '''postgresql-contrib''' package.


<!--T:4-->
<!--T:4-->
Line 20: Line 20:
<!--T:6-->
<!--T:6-->
Create an extra backup
Create an extra backup
{{Input|1=cp -R $HOME/.local/share/akonadi/db_data $HOME/.local/share/akonadi/db_data_10}}
{{Input|1=cp -R $HOME/.local/share/akonadi/db_data $HOME/.local/share/akonadi/db_data_15}}


<!--T:7-->
<!--T:7-->
Line 27: Line 27:


<!--T:8-->
<!--T:8-->
Create the new database, using the postgreSQL 11 executable
Create the new database, using the postgreSQL 16 executable
{{Input|1=/usr/lib/postgresql11/bin/initdb --pgdata=$HOME/.local/share/akonadi/db_data --locale=en_US.UTF-8}}
{{Input|1=/usr/lib/postgresql16/bin/initdb --pgdata=$HOME/.local/share/akonadi/db_data --encoding=UTF-8 --data-checksums --no-locale}}


<!--T:9-->
<!--T:9-->
{{Warning|Do '''NOT''' change the <code>--locale</code> value.}}
Check if upgrading is safe
Check if upgrading is safe
{{Input|1=/usr/lib/postgresql11/bin/pg_upgrade -b /usr/lib/postgresql10/bin -B /usr/lib/postgresql11/bin -d $HOME/.local/share/akonadi/db_data_old -D $HOME/.local/share/akonadi/db_data --check}}
{{Input|1=/usr/lib/postgresql16/bin/pg_upgrade -b /usr/lib/postgresql15/bin -B /usr/lib/postgresql16/bin -d $HOME/.local/share/akonadi/db_data_old -D $HOME/.local/share/akonadi/db_data --check}}


<!--T:10-->
<!--T:10-->
Line 40: Line 39:
<!--T:11-->
<!--T:11-->
If pg_upgrade doesn't detect any problem, you can start the database upgrade
If pg_upgrade doesn't detect any problem, you can start the database upgrade
{{Input|1=/usr/lib/postgresql11/bin/pg_upgrade -b /usr/lib/postgresql10/bin -B /usr/lib/postgresql11/bin -d $HOME/.local/share/akonadi/db_data_old -D $HOME/.local/share/akonadi/db_data}}
{{Input|1=/usr/lib/postgresql16/bin/pg_upgrade -b /usr/lib/postgresql15/bin -B /usr/lib/postgresql16/bin -d $HOME/.local/share/akonadi/db_data_old -D $HOME/.local/share/akonadi/db_data}}


<!--T:12-->
<!--T:12-->
Line 56: Line 55:


<!--T:16-->
<!--T:16-->
* openSUSE Leap 15.2: Akonadi fails to start after upgrading to PostgreSQL 12 with the same error as in https://bugs.archlinux.org/task/64562. Workaround: Install PostgreSQL 11, set it as default (with '''update-alternatives'''), and upgrade to PostgreSQL 11.
* [https://wiki.archlinux.org/index.php/PostgreSQL#Upgrading_PostgreSQL Upgrading PostgreSQL] (Arch linux wiki)
* [https://wiki.archlinux.org/index.php/PostgreSQL#Upgrading_PostgreSQL Upgrading PostgreSQL] (Arch linux wiki)
* [https://www.postgresql.org/docs/current/pgupgrade.html Upgrading PostgreSQL] (Official PostgreSQL documentation)
* [https://www.postgresql.org/docs/current/pgupgrade.html Upgrading PostgreSQL] (Official PostgreSQL documentation)
</translate>
</translate>

Latest revision as of 05:18, 30 November 2023

Other languages:

This guide describes the steps to follow in order to upgrade your Akonadi database when using the PostgreSQL backend.

In order to use this guide, you need to have both the old and new PostgreSQL versions installed. The applications paths mentioned below are valid for openSUSE users. You may have to adapt these paths for your distribution.

The initdb and pg_upgrade tools are required. Make sure these applications are available before following this guide. In openSUSE pg_upgrade is part of the postgresql-contrib package.

Stop the Akonadi services

akonadictl stop

(wait until all the akonadi processes are gone)

Create an extra backup

cp -R $HOME/.local/share/akonadi/db_data $HOME/.local/share/akonadi/db_data_15

Rename the Akonadi database directory

mv $HOME/.local/share/akonadi/db_data $HOME/.local/share/akonadi/db_data_old

Create the new database, using the postgreSQL 16 executable

/usr/lib/postgresql16/bin/initdb --pgdata=$HOME/.local/share/akonadi/db_data --encoding=UTF-8 --data-checksums --no-locale

Check if upgrading is safe

/usr/lib/postgresql16/bin/pg_upgrade -b /usr/lib/postgresql15/bin -B /usr/lib/postgresql16/bin -d $HOME/.local/share/akonadi/db_data_old -D $HOME/.local/share/akonadi/db_data --check

For more details about this command, you may read the pg_upgrade documentation.

If pg_upgrade doesn't detect any problem, you can start the database upgrade

/usr/lib/postgresql16/bin/pg_upgrade -b /usr/lib/postgresql15/bin -B /usr/lib/postgresql16/bin -d $HOME/.local/share/akonadi/db_data_old -D $HOME/.local/share/akonadi/db_data

Last steps, starting akonadi

akonadictl start

and running the consistency check

akonadictl fsck

After checking that your applications work as usual, you may delete the two backup copies you created earlier.

More Information