Rather unexpectedly, updating the PostgreSQL server brought us new solutions.
You know you have to migrate the settings when upgrading between major versions. Therefore, if the SQL server is used, the old version of the package should not be removed by the update tool. Now, how to implement this, namely how to know if PostgreSQL is used?
Several options are available, but we chose the one we believed more adequate and providing better CU functionality. When you call --config =dev-db/postgresql-12.1 while updating your PostgreSQL server, a new cl-config tool will be called by emerge --config =dev-db/postgresql-12.1. It uses ac_install_config, a set event variable. A record will be added to the new branch of templates that handle this event, for adding dev-db/postgresql:12 (the slot must thus be specified) to the world file. Once this has been completed, the system will not attempt to remove the current version of PostgreSQL at cleanup time.
In fact, we had been thinking of adding a new tool for some time, though for other purposes. In future, it should make it easier to setup services such as openvpn, sharewall, postgresql, letsencrypt, dante-sock, etc., that otherwise require additional configuration. You should see some changes when you update to sys-apps/calculate-utils 3.6.7.