best practices for upgrades?

For the past 12 years my process for upgrading Sugar has been:

On my Development Server:

  • Ensure that I'm running the latest PHP version supported by both the current version, and the one I'm upgrading to.
  • Ensure that I'm running the latest MySQL version supported by both the current version, and the one I'm upgrading to.
  • Upgrade Sugar 
  • Ensure that Elastic Search is on the version supported by the upgraded version.
  • Test and Debug document any changes in detail

Repeat on my TST Server
Test and Debug again as needed.

Repeat on my PRD Server
Test and verify once more

Repeat on the two integration testing Servers.

We fell behind and are still on Professional v11 so, based on the Compatibility matrix

 **  CURRENT Sugar Ent 11 Sugar Ent 12 Sugar Ent 13
Version Pro 11.0.5 11.0.5 12.0.3 13.0
PHP 7.3.18 7.3, 7.4 7.4, 8.0 8.0, 8.2
MySQL 8.0.26 5.7, 8.0 5.7, 8.0 5.7, 8.0.32
Elastic 7.16.1 7.16.1 7.16.3 8.4.3

it looks like the process for upgrade will be:

  • Backups
  • Sugar Conversion to Ent v11.0.5
  • Test and Debug customizations document in detail
  • Backups
  • Upgrade PHP to v7.4 
  • Upgrade Sugar to Ent v12.0.3
  • Test and Debug customizations document in detail
  • Backups
  • Upgrade PHP to v8.0 
  • Upgrade to MySQL 8.0.32 
  • Upgrade to Elastic Search 8.4.3 
  • Upgrade Sugar to v13 
  • Test and Debug customizations document in detail
  • Backups

Then repeat ALL that for EACH of the other 4 servers
(TST, PRD, and the two integration testing servers)
reapplying/copying the custom code changes needed for compatibility etc...

As you can imagine this gets to be a VERY time consuming process for me.

It would be nice if I could just "copy" my fully tested and ready to go TST version to PRD and the two other testing instances.

But, while that is relatively easy for code changes, each upgrade includes not only code changes but also DB changes and, of course, my TST and PRD data are not the same and in certain cases there may be modules in the development and testing environments which are not yet deployed to PRD (which is what has been holding us up these past years).

So my question is... how do you do it?
How do you upgrade multiple instances whose databases are not necessarily identical?

Surely Sugar doesn't upgrade one cloud customer at time?
What's the time-saving trick?

Thanks,
FrancescaS

PS. lesson learned:

DO NOT fall behind on your upgrades! You WILL regret it.

Parents Reply Children
No Data