I found the solution to this as it appears Schema doesn't manage the 
Model's database config setting.

Add $shoe->useDbConfig = $this->connection;

On Tuesday, August 13, 2013 7:43:50 PM UTC+2, Roosevelt P wrote:
>
> Hi,
>
> I  generated a Schema file. And the schema file creates records for two 
> tables under the function after(). If I run the create command on the 
> default
> table it works just fine. But if I specify the --connection argument 
> 'test', it creates the tables under 'test' just fine but tries to insert 
> the records to the default
> connection regardless of the --connection parameter.
>
> // Works fine. Creates the tables under the default database and inserts 
> records
> $ Console/cake schema create -s 1
>
> // Breaks. Creates the tables under 'test' connection but tries to insert 
> the record under the 'default' database connection
> $ Console/cake schema create -s 1 --connection test
>
> I believe it might has something to do with the after() method or it could 
> be a bug within CakePHP console.
>
> Here is the partial code of my Schema file:
>
> <?php 
>
> App::uses("ClassRegistry", "Utility");
> App::uses("Shoe", 'Model');
>
> class AppSchema extends CakeSchema {
>
>     public function before($event = array()) {
>         debug($this->connection); // always prints default :/
>         $db = ConnectionManager::getDataSource($this->connection);
>         $db->cacheSources = false;
>         return true;
>     }
>
>     public function after($event = array()) {
>         if(isset($event['create'])){
>             switch($event['create']){
>                 case "shoes":
>                     $this->InsertDefaultShoes();
>                     break;
>             }
>         }
>     }
>
>     public function InsertDefaultShoes(){
>         $shoe = ClassRegistry::init("Shoe");
>         $records = array(
>             array(
>                 "Shoe" => array(
>                     "name" => "Shoe 1"
>                 )
>             ),
>             array(
>                 "Shoe" => array(
>                     "name" => "Shoe 1",
>                 )
>             )
>         );
>         $shoe->saveAll($records);
>     }
>
>     ......
>
> }
>
>

-- 
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.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to