CodeIgniter Forums

Full Version: CI4 .env file connecting to multiple databases not working
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have four databases I wish to connect to, like so:

Code:
database.default.hostname = 127.0.0.1
database.default.username = something1
database.default.password = somepass1
database.default.database = somedatabase1
database.default.DBDriver = MySQLi

database.second.hostname = 127.0.0.1
database.second.username = something1
database.second.password = somepass1
database.second.database = somedatabase2
database.second.DBDriver = MySQLi

(and so on to database.fourth...)

When I had just one (default) it worked, when I added the other three, it stopped. Any clues?
You need to add the property `second` in app/Config/Database.php.

https://github.com/codeigniter4/CodeIgni...se.php#L33
(02-02-2021, 12:48 AM)kenjis Wrote: [ -> ]You need to add the property `second` in app/Config/Database.php.

https://github.com/codeigniter4/CodeIgni...se.php#L33

Thank you, that worked perfectly.

That should be documented in the https://codeigniter.com/user_guide/datab...h-env-file page of the docs as it wasn't said that is what is needed.
I've had a similar problem where I was able to define connection to the second database, but the convenience model methods (such as $theModel->findAll() ) not working on models based on the 2nd database.

Consider:


Code:
$modelBasedOnDb1 = model('model1'); // using $db1
$results1 = $modelBasedOnDb1->findAll(); // works fine

$modelBasedOnDb2 = new ModelBasedOnDb2();
$modelBasedOnDb2->db = $db2; // despite this
$results2 = $modelBasedOnDb2->findAll(); // produces some error like: no such table (whatevertable) on"DB 1"


(I used pseudo-names to describe the problem)

I ended up merging 3 databases in a single database because of this problem.
(Happened with CI 4.0.4 - I haven't tried again with CI 4.1.x)