Short version, No you can't alter this setting via a config file.
Long version, you see in your snippet in the OP it is defined as a const
constant on the Class, conversly the items you change via the config files are variables. You can't change or redefine contastants with code as by their nature they are fixed.
Now it is possible (if you look to the _create_table
function in this file) that the CI DB Forge object could pass a different engine (note the 6th parameter , $engine=self::ENGINE_DEFAULT
) however if we look at /system/codeigniter/system/database/DB_forge.php
(the parent class on which the driver specific classes inherit), line 193 (EE 2.10.0) we see the only call to _create_table
:
$sql = $this->_create_table($this->db->dbprefix.$table, $this->fields, $this->primary_keys, $this->keys, $if_not_exists);
Note that there is no 6th paramter, ergo the base CI database system is not and can not accept a configuration value, even if we could add such a value in we couldn't pass it to the relivent function without altering the core files.
So in this case I'm afraid the only solution is to alter the const
on file as you say, and carefully monitor your core upgrade to ensure they don't change this file.
As a little bonus I've looked through the update files up to 2.10.0 and I don't see any changes at this level. I dob note however that the EE_Schema does define the engine as MyISAM however I beleive this is only relivent to a fresh installation. Therefor I'd say change your value, perform your upgrade and check that no tables have been created as MyISAM and that your changed const remains in the file...