Muitas vezes precisamos ficar comentando e descomentando código de acesso a banco quando mudamos de ambiente (desenvolvimento, teste, produção). No CodeIgniter podemos fazer isso uma única vez, e sempre que alterarmos o ambiente de desenvolvimento, a conexão será feita automaticamente ao banco correto.

Para fazer isso, abra o arquivo database.php, que está localizado em "application/config", e logo após a declaração da variável $active_record, adicione o código a seguir:


if (defined('ENVIRONMENT')) {
switch (ENVIRONMENT) {
case 'development':
$db['default']['hostname'] = 'host do banco de dados';
$db['default']['username'] = 'usuário do banco de dados';
$db['default']['password'] = 'senha do banco de dados';
$db['default']['database'] = 'nome do banco de dados';
break;

case 'testing':
$db['default']['hostname'] = 'host do banco de dados';
$db['default']['username'] = 'usuário do banco de dados';
$db['default']['password'] = 'senha do banco de dados';
$db['default']['database'] = 'nome do banco de dados';
break;
case 'production':
$db['default']['hostname'] = 'host do banco de dados';
$db['default']['username'] = 'usuário do banco de dados';
$db['default']['password'] = 'senha do banco de dados';
$db['default']['database'] = 'nome do banco de dados';
break;

default:
$db['default']['hostname'] = 'host do banco de dados';
$db['default']['username'] = 'usuário do banco de dados';
$db['default']['password'] = 'senha do banco de dados';
$db['default']['database'] = 'nome do banco de dados';
break;
}
}

Esse código deverá substituir as 4 primeiras linhas após a variável $active_record. Após esse código, ficarão as linhas abaixo:


$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

Você deve estar se perguntando: "Aonde é declarado o valor de ENVIRONMENT?" A resposta é simples, acesse o arquivo index.php na raiz da aplicação e você verá a declaração feita na linha 21, caso não tenha feito nenhuma alteração no arquivo.

Feito isso você não precisará se preocupar em ficar trocando a conexão com o banco no arquivo database.php, basta alterar o valor de ENVIRONMENT no arquivo index.php que a conexão será feita normalmente, no banco correto para o ambiente em uso.