Onde trabalho usamos variaveis de ambiente para setar qual é o banco
default...

Em vez de voce alterar a configuração do grupo 'default' do db, voce pode
dizer que outra chave é a default alterando a variável
Database::$default. No localhost nossa chave default é 'development' ou a
'tests'.

2012/8/30 Rodrigo Monteiro Ferreira <[email protected]>

> Oi Douglas,
>
> Fiz algo parecido, no banco de dados de autenticacao eu tenho uma coluna
> com o nome do banco que o usuario usa... ai depois sobrescrevi a classe ORM
> para ler da sessão:
>
> class ORM extends Kohana_ORM {
>       
>       protected function _initialize()
>       {
>               // Set the object name and plural name
>               $this->_object_name = strtolower(substr(get_class($this), 6));
>               $this->_object_plural = Inflector::plural($this->_object_name);
>       
>               if ( ! $this->_errors_filename)
>               {
>                       $this->_errors_filename = $this->_object_name;
>               }
>       
>               if ( ! is_object($this->_db))
>               {
>                       if($this->_db_group == 'default')
>                       {
>                               $this->_db = Database::instance('default', array
>                                               (
>                                                               'type'       => 
> 'mysql',*                                                               
> 'connection' => array(
>                                                                               
> 'hostname'   => Session::instance()->get("config")->host,
>                                                                               
> 'database'   => Session::instance()->get("config")->database,
>                                                                               
> 'username'   => Session::instance()->get("config")->user,
>                                                                               
> 'password'   => Session::instance()->get("config")->password,
>                                                                       *       
> 'persistent' => FALSE,
>                                                               ),
>                                                               'table_prefix' 
> => '',
>                                                               'charset'      
> => 'utf8',
>                                                               'caching'      
> => FALSE,
>                                                               'profiling'    
> => TRUE,
>                                               ));
>                       }else{
>                               $this->_db = 
> Database::instance($this->_db_group);
>                       }
>               }
>       
>               if (empty($this->_table_name))
>               {
>                       // Table name is the same as the object name
>                       $this->_table_name = $this->_object_name;
>       
>                       if ($this->_table_names_plural === TRUE)
>                       {
>                               // Make the table name plural
>                               $this->_table_name = 
> Inflector::plural($this->_table_name);
>                       }
>               }
>       
>               foreach ($this->_belongs_to as $alias => $details)
>               {
>                       $defaults['model'] = $alias;
>                       $defaults['foreign_key'] = 
> $alias.$this->_foreign_key_suffix;
>       
>                       $this->_belongs_to[$alias] = array_merge($defaults, 
> $details);
>               }
>       
>               foreach ($this->_has_one as $alias => $details)
>               {
>                       $defaults['model'] = $alias;
>                       $defaults['foreign_key'] = 
> $this->_object_name.$this->_foreign_key_suffix;
>       
>                       $this->_has_one[$alias] = array_merge($defaults, 
> $details);
>               }
>       
>               foreach ($this->_has_many as $alias => $details)
>               {
>                       $defaults['model'] = Inflector::singular($alias);
>                       $defaults['foreign_key'] = 
> $this->_object_name.$this->_foreign_key_suffix;
>                       $defaults['through'] = NULL;
>                       $defaults['far_key'] = 
> Inflector::singular($alias).$this->_foreign_key_suffix;
>       
>                       $this->_has_many[$alias] = array_merge($defaults, 
> $details);
>               }
>       
>               // Load column information
>               $this->reload_columns();
>       
>               // Clear initial model state
>               $this->clear();
>       }
>       
> }
>
>
> Em 30 de agosto de 2012 08:02, Bernardo - Sudeste Hosting <
> [email protected]> escreveu:
>
> Insere no config do modulo database, deve funcionar.
>>
>> Pode usar também algo como o:
>> Kohana::$environment === Kohana::PRODUCTION,
>> Kohana::$environment === Kohana::EMPRESA,
>>
>>
>>
>> Em 30 de agosto de 2012 07:08, Douglas J.A.M <[email protected]>escreveu:
>>
>> Bom dia,
>>>
>>>     Gostaria de saber como se vocês sabem como eu implementaria um
>>> esquema que, dependendo da minha restrição, seleciona o banco e coloca como
>>> default, por exemplo:
>>>
>>> if(SESSION::instance()->get('empresa') == 'X'
>>>    setDefaultDB = tal;
>>> else
>>>    setDefaultDB = tal;
>>>
>>> Há como no kohana ou vou ter que por um if else em todo canto?
>>>
>>> Atenciosamente,
>>>
>>> --
>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>> Php" dos Grupos do Google.
>>> Para ver esta discussão na web, acesse
>>> https://groups.google.com/d/msg/kohana-php/-/QsHhdPFbKacJ.
>>> Para postar neste grupo, envie um e-mail para
>>> [email protected].
>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>> [email protected].
>>> Para obter mais opções, visite esse grupo em
>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>
>>
>>
>>
>> --
>> Atenciosamente,
>> Bernardo Sepulveda de Castro
>> ------- ------- ------- -------- -------- --------
>> *Rede Sudeste*
>> Aqui você não fica sozinho
>> www.redesudeste.com.br
>>
>>
>>  --
>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>> Php" dos Grupos do Google.
>> Para postar neste grupo, envie um e-mail para [email protected]
>> .
>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>> [email protected].
>> Para obter mais opções, visite esse grupo em
>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>
>
>
>
> --
> Rodrigo Monteiro
> Sistemas Web
> [email protected]
> (11) 6267-9366
>
>  --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
> Php" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>

-- 
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos 
Grupos do Google.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para 
[email protected].
Para obter mais opções, visite esse grupo em 
http://groups.google.com/group/kohana-php?hl=pt-BR.

Responder a