CodeIgniter Forums
Multiple databases and db_params with Datamapper - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived Libraries & Helpers (https://forum.codeigniter.com/forumdisplay.php?fid=22)
+--- Thread: Multiple databases and db_params with Datamapper (/showthread.php?tid=54152)



Multiple databases and db_params with Datamapper - El Forum - 08-25-2012

[eluser]Kh3ops[/eluser]
Hello everyone,

After browsing the forum for some time, I can't find the answer to my issue.

I'm using Datamapper ORM (1.8.2) and trying to make a specific model connect to another database :

Code:
<?php
class Zone extends DataMapper {


/**
  * override the database connections with this option
  */

var $db_params = 'dns';
  
    public function __construct()
    {
        // model constructor
        parent::__construct();
    }
}
?>

According to documentation, this is supposed to make model connect the the dabase described as "dns" in config/database.php.

Code:
// Secondary database
$db['dns']['hostname'] = '*****';
$db['dns']['username'] = '*****';
$db['dns']['password'] = '*****';
$db['dns']['database'] = '*****';
$db['dns']['dbdriver'] = 'mysql';
$db['dns']['dbprefix'] = '';
$db['dns']['pconnect'] = FALSE;
$db['dns']['db_debug'] = TRUE;
$db['dns']['cache_on'] = FALSE;
$db['dns']['cachedir'] = '';
$db['dns']['char_set'] = 'utf8';
$db['dns']['dbcollat'] = 'utf8_general_ci';
$db['dns']['swap_pre'] = '';
$db['dns']['autoinit'] = TRUE;
$db['dns']['stricton'] = FALSE;

Except it doesn't...

When displaying object details in controller :

Code:
$zone = new zone();

I get a MySQL error showing the default database and not the database specified in "dns" configuration.

Code debug shows that db_params is not set on my object despite my declaration.

Quote:Zone Object ( [db_params] => [error] => [stored] => [prefix] => [join_prefix] => [table] => zones [model] => zone [primary_key] => id [error_prefix] =>

Any idea?

Thanks,


Multiple databases and db_params with Datamapper - El Forum - 08-29-2012

[eluser]Kh3ops[/eluser]
UP!


Multiple databases and db_params with Datamapper - El Forum - 08-29-2012

[eluser]WanWizard[/eluser]
The 1.8.2 release had an issue where model property overrides didn't always work. This is fixed in 1.8.2.1.

Get the latest datamapper library from http://bitbucket.org/wanwizard/datamapper


Multiple databases and db_params with Datamapper - El Forum - 08-29-2012

[eluser]Kh3ops[/eluser]
I'll try this out right away ! Thanks


Multiple databases and db_params with Datamapper - El Forum - 08-29-2012

[eluser]Kh3ops[/eluser]
You were right WanWizard. Ugprading Datamapper did the trick.

Many thanks :-)


Multiple databases and db_params with Datamapper - El Forum - 11-16-2012

[eluser]xylude[/eluser]
I hate to bump an old topic like this, but I am having the same exact problem. I've downloaded the latest DM from Bitbucket and still cannot get my DM to connect to multiple databases.

Here is my 'database.php' file:

http://pastie.org/5388841

And my model:

Code:
class Module extends DataMapper {
    public $db_params = 'ohm';
    public $has_one = array();
    public $has_many = array();
}

When I try and run it I get the following error:

Error Number: 1146
Table 'db1.modules' doesn't exist

Please help, I've tried everything I can think of.


Multiple databases and db_params with Datamapper - El Forum - 11-16-2012

[eluser]WanWizard[/eluser]
Can you add a constructor you your model, have it call the parent constructor, and after that, do a var_dump($this->db_params)?