Hello All.
I am trying to switch the database at runtime when the user logs in. There
are two approaches that I've tried:
replace the 'default' database name
and create another configuration name
but neither approach seems to work.
Is there a specific order of operations? For example, assume the 'default'
is connected, and when I need to switch databases, the steps I take are:
ConnectionManager::getDataSource( 'default' )->disconnect();
$ds = ConnectionManager::getDataSource( 'default' );
$ds->config['database'] = $dbfName;
$ds->connect();
Unfortunately this doesn't work.
My other approach is similar:
ConnectionManager::getDataSource( 'default' )->disconnect();
$settings = array( 'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => $databasename,
'prefix' => '' );
ConnectionManager::create( 'company', $settings );
$ds = ConnectionManager::getDataSource( 'company' );
$ds->connect();
With either of these approaches I get [MissingTableException].
I've tried setDataSource for each Model:
$this->ModelNameHere>setDataSource( 'company’ );
But no luck.
I forget the exact version of CakePHP that I am using, but I downloaded it
from github a few weeks back.
Thank you for your help.
--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.