Sugar 7.8.2.2 to 7.9.4 Post Upgrade Issue - Class FreeTDSManager contains 5 abstract methods

I am attempting to upgrade our Sugar Instance to the latest version. I already have all needed packages, upgrade paths, etc. Switching php, mysql versions in between won't be a big deal.

That said, I've run into issues with the very 1st upgrade.

Whenever I run the upgrade tool it fails in "post upgrade"

PHP Fatal error:  Class FreeTDSManager contains 5 abstract methods and must therefore be declared abstract or implement the remaining methods (DBManager::freeDbResult, DBManager::getFieldsArray, DBManager::fetchRow, ...) in /var/www/sites/sugar/web/include/database/FreeTDSManager.php on line 22\n', referer: https://mysugarinstance/UpgradeWizard.php

I saw a problem with this same file in another issue as well:
Issue when upgrading from 7.8.2.2 to 7.9.5.0 causes DBManagerFactory errors in post steps



We are running: (these are correct supported versions according to sugar docs from that time):
- PHP 5.6.40
- MySQL 5.6.40

So it doesn't seem like the MySQL version should be the issue, but maybe I'm missing something.


  • I took a look at include/database/DBManagerFactory.php and noticed in the getTypeInstance() function, that FreeTDSManager could only loaded if the db type is "mssql". I am unsure exactly why this was happening as it SHOULD be loading "mysql" which is what db_type was in config.php.

    Nevertheless, it only does all these checks if you have not specifically set 'db_manager' config.

    So in our dbconfig array in config.php I set that value to the correct db manager and the upgrade worked!

    'dbconfig' =>
    array (
    'db_host_name' => 'localhost',
    'db_host_instance' => 'SQLEXPRESS',
    'db_user_name' => '****',
    'db_password' => '****',
    'db_name' => '****',
    'db_type' => 'mysql',
    'db_manager' => 'MysqliManager', //add this line
    ),