Your best success for upgrading is to inform all users prior to upgrade to check back in all checked out entities (as during the upgrade process this can cause issue when entities are checked out). Once everything is checked back in then deactivate the projects (to insure that no clean up processes are running in the back ground), and take a backup of both the project repository and the DB project schema (also take a back up of the qcsiteadmin and labproject schemas). After these are taken then you will need to uninstall the current ALM version and install the new ALM version (this is assuming that you are doing an inplace upgrade reusing the same server and DB server for the newer version). If not performing an inplace then no need to uninstall the current version. Just copy the repositories and the DB schemas to the new servers. Install the new ALM version (with the newer version since 12.xx all patches are a full installer so there is no need to install the OEM and then patch it but can install directly from the latest patch installer). Once the update is installed then you will need to go into the Site Admin and remove (remove and not delete) the projects and restore them with the correctly edited DBID.xml files) and then run maintenance and upgrade routines on the projects as needed.
Hope this helps. The backups are taken in case you encounter issues then you will have something to restore from should your working files become corrupted.