Trying to save course-session-user relationships see BT#4875

skala
Julio Montoya 13 years ago
parent dd87767caf
commit b79df3bc78
  1. 4
      tests/migrate/migration.class.php
  2. 39
      tests/migrate/migration.custom.class.php
  3. 21
      tests/migrate/migration.mssql.class.php

@ -156,7 +156,7 @@ class Migration {
// Process the migration of fields from the given table
$sql_select_fields = self::prepare_field_match($table);
$this->select_all($table['orig_table'], $sql_select_fields);
$this->select_all($table['orig_table'], $sql_select_fields, $table);
if (count($table['fields_match']) == 0) {
error_log('No fields found');
@ -184,7 +184,7 @@ class Migration {
//Stop here
if ($table['orig_table'] == 'Matricula') {
error_log(print_r($this->data_list['sessions'], 1));
//error_log(print_r($this->data_list['sessions'], 1));
exit;
}
}

@ -65,26 +65,24 @@ class MigrationCustom {
/**
* Log data from the original users table
*/
public function log_original_session_unique_id($data, &$omigrate) {
$omigrate['sessions'][$data] = 0;
public function log_original_session_unique_id($data, &$omigrate, $row_data) {
$omigrate['sessions'][$row_data['uidIdCabProgramaAcademico']] = $row_data;
return $data;
}
public function get_real_course_code($data, &$omigrate, $row_data) {
/*error_log('get_real_course_code');
error_log(print_r($data,1));
error_log(print_r($omigrate['courses'][$data], 1));*/
if (!isset($omigrate['courses'][$data])) {
error_log("Course not found in data_list array");
error_log(print_r($data, 1));
exit;
//exit;
}
return $omigrate['courses'][$data]['code'];
}
function get_session_id($data, &$omigrate, $row_data) {
error_log(print_r($data, 1));
function get_session_id_by_programa_id($data, &$omigrate, $row_data) {
/*error_log(print_r($data, 1));
error_log(print_r($row_data, 1));
error_log($omigrate['sessions'][$data]);*/
if (!isset($omigrate['sessions'][$data])) {
error_log(print_r($omigrate['sessions'], 1));
error_log("sessions not found in data_list array ");
@ -93,6 +91,24 @@ class MigrationCustom {
return $omigrate['sessions'][$data];
}
public function get_user_id($data, &$omigrate, $row_data) {
//error_log('get_real_teacher_id');
//error_log(print_r($data, 1));
//error_log(print_r($omigrate['users_empleado'], 1));
//error_log('get_real_teacher_id');
//error_log($data);
if (empty($omigrate['users_alumno'][$data])) {
//error_log('not set');
return 1;
} else {
$persona_id = $omigrate['users_alumno'][$data]['uidIdPersona'];
if (!empty($persona_id)) {
return $omigrate['users_persona'][$persona_id]['user_id'];
}
}
return $omigrate['users_alumno'][$data]['user_id'];
}
public function get_real_teacher_id($data, &$omigrate, $row_data) {
//error_log('get_real_teacher_id');
//error_log(print_r($data, 1));
@ -174,14 +190,15 @@ class MigrationCustom {
return $user_info;
}
public function add_user_to_session($data, &$data_list) {
public function add_user_to_session($data, &$data_list, $row_data) {
error_log('add_user_to_session');
error_log(print_r($data, 1));
error_log(print_r($row_data, 1));
exit;
//error_log(print_r($data_list['user'], 1));
//$user_id = UserManager::add($data);
//SessionManager::suscribe_users_to_session($data['session_id'], array($data['user_id']));
return $user_id;
}
}

@ -22,7 +22,7 @@ class MigrationMSSQL extends Migration {
return true;
}
public function select_all($table, $fields) {
public function select_all($table, $fields, $options = array()) {
$fields_sql = '';
foreach ($fields as $field) {
$fields_sql .= $field . ', ';
@ -32,16 +32,25 @@ class MigrationMSSQL extends Migration {
}
//In order to process X item of each table add TOP X
$top = " TOP 5000 ";
$top = " TOP 1000 ";
if (in_array($table, array('Persona', 'Alumno', 'Empleado'))) {
$top = " TOP 10 ";
$top = " TOP 100 ";
}
if ($table == 'ProgramaAcademico') {
$top = " ";
$top = " TOP 1000 ";
}
$extra = null;
if (isset($options) && !empty($options['inner_join'])) {
$extra = ' INNER JOIN '.$options['inner_join'].' ON '.$options['on'];
}
$sql = "SELECT $top $fields_sql FROM $table $extra ";
if (!empty($extra)) {
error_log(print_r($options,1));
error_log($sql);
}
$sql = "SELECT $top $fields_sql FROM $table";
//remove
error_log($sql);
$this->rows_iterator = mssql_query($sql, $this->c);
if ($this->rows_iterator === false) {

Loading…
Cancel
Save