CFConfig 1.10.6 complaining about DBDRIVER key

After upgrading CFConfig to yesterday’s 1.10.6 release, one of our servers is no longer importing .cfconfig.json properly but complains about a missing DBDRIVER key:

× | Starting Server
   |------------------------------
   | start server in - /opt/staging/
   | server name - staging
   | server config file - /opt/staging/server.json
   | Contacting ForgeBox to determine the latest & greatest version of [lucee 5.3.8]...  Use an exact 'cfengine' version to skip this check.
   | OK, [lucee 5.3.8+206] it is!
   | WAR/zip archive already installed.
   |------------------------------
   | √ | Setting Server Profile to [development]
   |   |------------------------------------------------------
   |   | Profile set from server bound to localhost
   |   | Block CF Admin disabled
   |   | Block Sensitive Paths enabled
   |   | Block Flash Remoting enabled
   |   | Directory Browsing enabled
   |   | File Caching disabled
   |   |------------------------------------------------------
   | × | Loading CFConfig into server
   |   | > key [DBDRIVER] doesn't exist
   |   |-------------------------------------------
   |   | Found CFConfig JSON in "CFConfig.file" server.json key.
   |   | Importing luceeserver config from [/opt/staging/.cfconfig.json]
   |   | Config transferred from /opt/staging/.cfconfig.json!
   |   |-------------------------------------------



ERROR (5.9.0+00721)

key [DBDRIVER] doesn't exist


/root/.CommandBox/cfml/modules/commandbox-cfconfig/modules/cfconfig-services/models/BaseLucee.cfc: line 265
263: 			if( !isNull( params[ 'bundle-version' ] ) ) { params[ 'bundleVersion' ] = params[ 'bundle-version' ]; }
264: 			// If we look to be using an Oracle service name, extract that.
265: 			if( params.dbdriver == 'oracle' && params.dsn.listLen( '/' ) > 1 ) {
266: 				params[ 'serviceName' ] = params.dsn.listLast( '/' )
267: 			}

The .cfconfig.json file defines only one datasource (shortened for clarity):

"datasources":{
"preside":{
            "class":"org.gjt.mm.mysql.Driver",
            "dbdriver":"mysql",
            "custom":"useUnicode=true&characterEncoding=UTF-8",
            "database":"staging",
}
}

Any idea what’s going wrong here?

Quick update: Asking Commandbox to forget the server and recreating it afterwards solved this issue.

Sorry for the error-- this line of code was related to a recent fix I added to CFConfig to support SID and service name in CFConfig. I thought for certain Lucee ALWAYS had the dbdriver key defined in its datasources (and it worked in my testing), but I guess not. I’m pushing a small fix that checks for that key before attempting to use it.

1 Like