Upgrade 71.3 to 7.14 using cli gives error - Using "self" in callable is deprecated

I do not know how to upgrade

  • from SuiteCRM v713 on Debian 11 with php 7.4
  • to SuiteCRM 7.14 on Debian 12 with php 8.2

I have tried many methods, including the manual install from the CLI with
./vendor/bin/robo upgrade:suite suitecrm-upgrade-7-13-x-to-7-14-1.zip a_log_file.log /var/www/html/suite.installation AdminUser
from which I get the error message

ERROR: Use of “self” in callables is deprecated
in /var/www/html/suite.installation/vendor/consolidation/robo/src/Task/Base/Exec.php:66

If I upgrade SuiteCRM to 7.14 on the Debian 11 system using php 7.4, that is not supposed to work since 7.14 requires php 8.0 or higher (according to the compatibility matrix)

If I upgrade Debian top v12 first to get the new OS (Debian 12), the new MariaDB (10.11) and the current php (8.2) and then bring over my existing SuiteCRM installation (MySQL database and SuiteCRM directory with proper permissions) and install it, then try to upgrade it in place,

  • If I do it via the cli, I get the error message above
  • if I do it via the user interface, it gets all the way to the final step then the screen goes blank and stays that way. I have to manually exit that screen and go to another screen where I can see that the version is still 7.13.4

So, what is the recommended method/sequence to upgrade

  • from SuiteCRM v713 on Debian 11 with php 7.4
  • to SuiteCRM 7.14 on Debian 12 with php 8.2

You might try using a PHP version that is lower than the advised, only for the upgrade process. Immediately afterwards, move the PHP version up.


Another approach is to try to work with composer to solve that particular error. Check the Robo version that is required for the old and for the new SuiteCRM (that’s specified in composer.json). Then you can use composer upgrade (not the usual command which would be composer install - the names are misleading) to move the Robo version up before starting the upgrade.

Make a backup copy of the vendor directory before messing with composer, and don’t run composer as root.

@pgr and @rsp

You were right. Steps are

  1. Leave the old php version in place,
  2. run the upgrade (even though the compatibility matrix says it will not work if you do),
  3. do NOT run Quick R&R,
  4. Upgrade php (or just upgrade the OS to Debian 12 which upgrades php and MariaDB)
  5. THEN update permissions and run the quick R&R

Thank you

Documentation requires an update

Thank goodness for Virtual Machines; I could get to a point, backup, and if it crashed out after that, resore and go back at it.

You were both right so how do I assign both as the solution?

Thanks again

2 Likes