SVN Alba r5409 - prosistem/alba/trunk/alba/plugins/albaTasks/data/tasks
Author: josx Date: 2008-01-16 19:02:00 -0200 (Wed, 16 Jan 2008) New Revision: 5409 Modified: prosistem/alba/trunk/alba/plugins/albaTasks/data/tasks/albaTasks.php Log: Se agrega el metodo load data ya que el del symfony tiene un bug Modified: prosistem/alba/trunk/alba/plugins/albaTasks/data/tasks/albaTasks.php =================================================================== --- prosistem/alba/trunk/alba/plugins/albaTasks/data/tasks/albaTasks.php 2008-01-16 20:25:02 UTC (rev 5408) +++ prosistem/alba/trunk/alba/plugins/albaTasks/data/tasks/albaTasks.php 2008-01-16 21:02:00 UTC (rev 5409) @@ -9,6 +9,8 @@ pake_desc('[ALBA-fix] dump data to fixtures directory'); pake_task('alba-dump-data', 'project_exists'); +pake_desc('[ALBA-fix] load data to fixtures directory'); +pake_task('alba-load-data', 'project_exists'); function run_alba_list_users( $task, $args ) @@ -102,4 +104,71 @@ } +function run_alba_load_data($task, $args) +{ + if (!count($args)) + { + throw new Exception('You must provide the app.'); + } + + $app = $args[0]; + + if (!is_dir(sfConfig::get('sf_app_dir').DIRECTORY_SEPARATOR.$app)) + { + throw new Exception('The app "'.$app.'" does not exist.'); + } + + if (count($args) > 1 && $args[count($args) - 1] == 'append') + { + array_pop($args); + $delete = false; + } + else + { + $delete = true; + } + + $env = empty($args[1]) ? 'dev' : $args[1]; + + // define constants + define('SF_ROOT_DIR', sfConfig::get('sf_root_dir')); + define('SF_APP', $app); + define('SF_ENVIRONMENT', $env); + 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'; + + if (count($args) == 1) + { + if (!$pluginDirs = glob(sfConfig::get('sf_root_dir').'/plugins/*/data')) + { + $pluginDirs = array(); + } + $fixtures_dirs = pakeFinder::type('dir')->name('fixtures')->in(array_merge($pluginDirs, array(sfConfig::get('sf_data_dir')))); + } + else + { + $fixtures_dirs = array_slice($args, 1); + } + + $databaseManager = new sfDatabaseManager(); + $databaseManager->initialize(); + + $data = new sfPropelData(); + $data->setDeleteCurrentData($delete); + + foreach ($fixtures_dirs as $fixtures_dir) + { + if (!is_readable($fixtures_dir)) + { + continue; + } + + pake_echo_action('propel', sprintf('load data from "%s"', $fixtures_dir)); + + $data->loadData($fixtures_dir,'alba'); + } +} + ?> \ No newline at end of file
participants (1)
-
commits@pressenter.com.ar