function run_migrate($task, $args)
{
    if (count($args) == 0) {
        throw new Exception('You must provide a app.');
    }
    @(list($app, $env) = explode(':', $args[0]));
    if (!is_dir(sfConfig::get('sf_app_dir') . DIRECTORY_SEPARATOR . $app)) {
        throw new Exception('The app "' . $app . '" does not exist.');
    }
    // define constants
    define('SF_ROOT_DIR', sfConfig::get('sf_root_dir'));
    define('SF_APP', $app);
    define('SF_ENVIRONMENT', $env ? $env : 'cli');
    define('SF_DEBUG', true);
    // get configuration
    require_once SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'apps' . DIRECTORY_SEPARATOR . SF_APP . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php';
    $databaseManager = new sfDatabaseManager();
    $databaseManager->initialize();
    $migrator = new sfMigrator();
    // if no other arguments besides app, then migrate to latest version
    if (count($args) == 1) {
        $runMigrationsCount = $migrator->migrate();
    } elseif (isset($args[1]) && ctype_digit($args[1])) {
        $runMigrationsCount = $migrator->migrate($args[1]);
    } else {
        throw new Exception('You can provide a destination migration number as a second parameter');
    }
    $currentVersion = $migrator->getCurrentVersion();
    pake_echo_action('migrations', 'migrated ' . $runMigrationsCount . ' step(s)');
    pake_echo_action('migrations', 'current database version: ' . $currentVersion);
}
 protected function execute($arguments = array(), $options = array())
 {
     $autoloader = sfSimpleAutoload::getInstance();
     $autoloader->addDirectory(sfConfig::get('sf_plugins_dir') . '/sfPropelMigrationsLightPlugin/lib');
     $configuration = ProjectConfiguration::getApplicationConfiguration($arguments['application'], $options['env'], true);
     $databaseManager = new sfDatabaseManager($configuration);
     $migrator = new sfMigrator();
     if (isset($arguments['schema-version']) && ctype_digit($arguments['schema-version'])) {
         $runMigrationsCount = $migrator->migrate((int) $arguments['schema-version']);
     } else {
         $runMigrationsCount = $migrator->migrate();
     }
     $currentVersion = $migrator->getCurrentVersion();
     $this->logSection('migrations', 'migrated ' . $runMigrationsCount . ' step(s)');
     $this->logSection('migrations', 'current database version: ' . $currentVersion);
 }