Hi Paul,
Depending on how you're planning on upgrading PostgreSQL, you may not need to do the 14->16->18 upgrade path. If you're just dumping your database from 14 then importing it into 18 that should be fine. That's generally how we manage it, largely because the PostgreSQL cluster upgrade process for PostgreSQL is such a pain.
Also, XNAT 1.10.0 runs just fine on PostgreSQL 14! And XNAT 1.9 runs just fine on PostgreSQL 16 and 18. You should definitely upgrade PostgreSQL as well as XNAT, but the order in which you do the upgrades is not critical.
Since you're working on a test instance before upgrading your production system(s) (which is definitely the best practice for this sort of thing), you can try both upgrading one or the other first and upgrading them both at the same time. I would probably do this by upgrading the database first, restarting Tomcat and making sure everything is functioning properly, then upgrading Java and XNAT next, but that is out of an abundance of caution.
The most important things to consider are:
- Make sure you have a full backup of your database safely stored somewhere
- Keep users from accessing the system until you've completed the upgrades and validated that the system works properly (we run through a small battery of smoke tests that includes logging in, creating a subject in a validation project, uploading a session, etc.)
- Run through the process on your test instance to eliminate any stumbling blocks then follow the same process when upgrading your production system
Let us know how you go about the actual upgrade and whether you run into any issues!