extensão - usando multiplas conexões de banco de dados nas model

Opa, um tempo atras criei uma extensão chamada MultiActiveRecord, que esta aqui o link para a extensao e o link para o forum

Dei um update nela agora com sistema de criação de models usando Gii, para outros databases e acertei e criei mais uns detalhes

Deixem ae seus comentarios, sugestões, etc

Espero que apreciem

Gustavão,

Manda um print de como fazer para usar outras conexão, esses tempo atrás eu estava com 2 banco de dados diferente(mysql(bd) e firebird(fb)), só que eu precisa-se usar o firebird, tinha que ir la mudar para (bd), para poder usar no Gii.

Sua extensão identifica automaticamente as conexões?

Opa, beleza Newerton

No link da extensão explica mais detalhado, mas em ingles

Basicamente é o seguinte :

faça o download no link postado e coloque o arquivo MultiActiveRecord em component e a pasta mpgii em extensoes

nas configurações principais faça o seguinte




return array(

//para usar o MPgii que vem com a extensão

'modules'=>array(

  'gii'=>array(

      'class'=>'system.gii.GiiModule',

      'password'=>'myPassword',

      'generatorPaths' =>array('ext.mpgii'),//adicione esta linha quando for utilizar o gii

   ),

   /seus outros modulos

),

//...

'components'=>array(

    //seu database normal como você usa

   'db'=>array('...'),

    //aqui outras conexões, pode usar qualquer conexao aceita pelo yii

    //db_system é o nome da conexão e é esse nome que você vai usar nas models

   'db_system'=>array(

        'class'=>'CDbConnection',//importante definir a classe, só a do component 'db' é CDbConnection por padrão

        'connectionString'=>'mysql:host=localhost;dbname=db_system',

        'username'=>'myUsername',

        'password'=>'myPassword',

    ),

    //pode especificar quantas conexões com databases quiser

   'db_user'=>array(

        'class'=>'CDbConnection',//!important

        'connectionString'=>'mysql:host=localhost;dbname=db_user',

        'username'=>'myUsername',

        'password'=>'myPassword',

    ),

    //...

),

 

);

beleza, essas são as configurações iniciais

os seus models precisam extender a classe MultiActiveRecord


class Model extends MultiActiveRecord{}

e então nas suas models use assim:




//model extende MultiActiveRecord como descrito acima

class Pages extends Model{

        //caso deseje uma conexão diferente crie um metodo assim 

        function connectionId(){

            //o metodo retorna o nome do componente da conexao definido em configs/main.php e explicado acima

            return 'db_system';

        }

}



é isso

Pra usar o gii acesse normalmente o gii e vai ter um menu novo chamado MPmodel que vai pedir o id da conexão com o banco de dados, que vem já por padrão como db, aqui vai um print

1190

Gii - MPmodel Generator_1295898066731.png

É bem mais simples usando do que falando

Qualquer dúvida ou sugestão estou aqui

Esqueci de comentar que o codigo




        function connectionId(){

            return 'db_system';

        }



é criado automaticamente pelo MP-Gii

Gustavo,

Excelente, bom que podemos definir de qual BD queremos gerar, sem alterar o main.php, legal otima extensão.