Так же как и /protected/config/main.php удобно настроить для сервера и для локальной машины (подробнее), можно настроить и console.php.

И так приступим. В папке /protected/config/ создадим 2 файла: consoleLocal.php и consoleServer.php.

Теперь для конфигурации консоли у нас есть 3 файла. console.php - содержит основные конфигурации для локальной машины и для сервера. consoleLocal.php - конфигурация только для локальной машины. consoleServer.php - конфигурация только для сервера.

Настроим основные конфигурации, для этого откроем файл console.php и приведем его к следующему виду:

<?php

return array(
    'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',
    'name' => 'project name',
    // preloading 'log' component
    'preload' => array('log'),
    // application components
    'components' => array(        
        'log' => array(
            'class' => 'CLogRouter',
            'routes' => array(
                array(
                    'class' => 'CFileLogRoute',
                    'levels' => 'error, warning',
                ),
            ),
        ),
    ),
);

Теперь можно настраивать соединение с БД в зависимости от места запуска. Перейдем к настройки для локальной машины, откройте файл consoleLocal.php и добавьте конфигурацию соединения с БД, пример:

<?php

return CMap::mergeArray(
    require(dirname(__FILE__) . '/console.php'), array(
        'components' => array(
            'db' => array(
                'connectionString' => 'mysql:host=localhost;dbname=mydbname',
                'emulatePrepare' => true,
                'username' => 'root',
                'password' => '',
                'charset' => 'utf8',
                'enableProfiling' => true,
            ),
        ),
    ),
);

По аналогии настройте конфигурацию соединения с БД для сервера в файле consoleServer.php. В файлах consoleLocal.php и consoleServer.php можно настроить не только разное подключение к базе данных, но и другие конфигурации. Например логирование и т.д..

Теперь настроим выбор файла конфигураций в зависимости от места запуска. Для этого открываем файл /protected/yiic.php и приводим его к следующему виду:

<?php

$yiic=dirname(__FILE__).'/../framework/yiic.php';

if ($_SERVER['OS'] == 'Windows_NT') {
    $config=dirname(__FILE__).'/config/consoleLocal.php';
} else {
    $config=dirname(__FILE__).'/config/consoleServer.php';
}

require_once($yiic);

Все, теперь можете пользоваться консольными командами Yii не переживая о постоянной смене конфигураций.

Если у вас возникли проблемы с определением места запуска, то можете использовать другой параметр определения или элемент массива $_SERVER. Для просмотра всех параметров $_SERVER Вы можете привести файл yiic.php к виду:

<?php

$yiic=dirname(__FILE__).'/../framework/yiic.php';
var_dump($_SERVER); die;

И выполнить команду yiic в консоле (для Windows Win + R и введите cmd), перед выполнением команды вы должны находиться в папке my project path/protected:


yiic

Команда исполнит php код в файле yiic.php и выведет список всех параметров массива $_SERVER. После выбора параметров не забудьте вернуть все как было.