Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/tests/migrate/migrate.php

99 lines
3.8 KiB

<?php
/**
* Migration launcher
* Call with either "migration" or "sync" as first parameter
* @package chamilo.migration
*/
/**
* Load required classes
*/
require_once dirname(__FILE__).'/../../main/inc/global.inc.php';
require_once 'config.php';
require_once api_get_path(LIBRARY_PATH).'attendance.lib.php';
require_once api_get_path(LIBRARY_PATH).'thematic.lib.php';
$action_type = ((!empty($argv[1]) && $argv[1]=='migration')?'migration':'sync');
if (is_file(dirname(__FILE__) . '/migration.custom.class.php')) {
require_once 'migration.custom.class.php';
} else {
die("You need to define a custom migration class as migration.custom.class.php\n(copy it from migration.custom.class.dist.php, otherwise this migration process\n will not know what to do with the original database fields\n");
}
require_once 'migration.class.php';
if (empty($servers)) {
die("This script requires a servers array with the connection settings and the file to parse\n");
}
$data_list = array('users'=>array(),'courses'=>array(),'sessions'=>array());
$utc_datetime = api_get_utc_datetime();
$start = time();
echo "\n-- Starting at ".date('h:i:s')." local server time\n";
if (!empty($servers)) {
foreach ($servers as $server_info) {
if ($server_info['active']) {
echo "\n---- Start loading server----- \n";
echo $server_info['name']."\n\n";
error_log('Treating server '.$server_info['name']);
//echo "---- ----------------------- \n";
$config_info = $server_info['connection'];
$db_type = $config_info['type'];
if (empty($db_type)) {
die("This script requires a DB type to work. Please update orig_db_conn.inc.php\n");
}
$file = dirname(__FILE__) . '/migration.' . $db_type . '.class.php';
if (!is_file($file)) {
die("Could not find db type file " . $file . "\n");
}
require_once $file;
$class = 'Migration' . strtoupper($db_type);
$m = new $class($config_info['host'], $config_info['port'], $config_info['db_user'], $config_info['db_pass'], $config_info['db_name'], $boost);
$m->connect();
/**
* Prepare the arrays of matches that will allow for the migration
*/
$migrate = array();
$branch = $server_info['branch_id'];
include $server_info['filename'];
if ($action_type == 'migration') {
error_log('Starting Migration');
//Default migration from MSSQL to Chamilo MySQL
$m->migrate($matches);
} else {
//Getting transactions from MSSQL (via webservices)
if (!empty($matches['web_service_calls'])) {
error_log('Starting Synchronization');
$m->set_web_service_connection_info($matches);
//This functions truncates the transaction lists!
//$m->insert_test_transactions();
//$m->get_transactions_from_webservice();
//Load transactions saved before
$params = array('branch_id' => 2);
$m->execute_transactions();
} else {
error_log('Make sure you define the web_service_calls array in your db_matches.php file');
}
//print_r($m->errors_stack);
}
//echo "OK so far\n";
echo "\n ---- End loading server----- \n";
} else {
error_log("db_matches not activated: {$server_info['name']} {$server_info['filename']}");
}
}
}
$end = time();
echo "Total process took ".($end-$start)." seconds \n";
error_log("Total process took ".($end-$start)." seconds");