I am trying to convert a D7 website to backdrop.
In D7 I am able to specify a second dB needed by a custom module with these connection parameters in settings.php:
$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'backdrop', 'username' => 'name', 'password' => 'pass', 'host' => 'localhost', 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), ), 'kieser' => array ( 'default' => array ( 'database' => 'kieser', 'username' => 'anothername', 'password' => 'anotherpass', 'host' => 'localhost', 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), ), );
But when I try update.php, I get these errors:
php: PHP Warning: Undefined variable $database in backdrop/settings.php on line 62 php: PHP Deprecated: md5(): Passing null to parameter #1 ($string) of type string is deprecated in backdrop/settings.php on line 62 php: PHP Warning: Undefined variable $database in backdrop/settings.php on line 63 php: PHP Deprecated: md5(): Passing null to parameter #1 ($string) of type string is deprecated in backdrop/settings.php on line 63
Does anybody have some hints as to how I get this to work in backdrop?
NB I have read the docs about secondary dBs, but this is a second dB not a secondary one.
Hi VaughanR.
The issue (seems like a bug) is in these two lines in the settings.php for a "virgin" Backdrop codebase:
$config_directories['active'] = 'files/config_' . md5($database) . '/active'; $config_directories['staging'] = 'files/config_' . md5($database) . '/staging';
Try replacing 'files/config_' . md5($database) . '/active'; with something like
'files/config_[TYPE_ANY_RANDOM_STRING_HERE]/active';
AND
'files/config_[TYPE_THE_SAME_RANDOM_STRING_HERE]/staging';
That will create your config active and staging directories in the location specified in those lines, instead of trying to come up with a unique string by doing md5() on the $database string.