|
|
|
@ -1,8 +1,9 @@ |
|
|
|
|
<?php // $Id: compare_db.php 9246 2006-09-25 13:24:53Z bmol $
|
|
|
|
|
<?php // $Id: compare_db.php 10519 2006-12-18 17:12:37Z yannoo $
|
|
|
|
|
/* |
|
|
|
|
============================================================================== |
|
|
|
|
Dokeos - elearning and course management software |
|
|
|
|
|
|
|
|
|
Copyright (c) 2006 Yannick Warnier <yannick.warnier@dokeos.com> |
|
|
|
|
Copyright (c) 2004 Dokeos S.A. |
|
|
|
|
Copyright (c) 2003 Ghent University (UGent) |
|
|
|
|
Copyright (c) 2001 Universite catholique de Louvain (UCL) |
|
|
|
@ -30,49 +31,67 @@ |
|
|
|
|
============================================================================== |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/**** Database configuration ****/ |
|
|
|
|
$mysql_server='localhost'; |
|
|
|
|
$mysql_user='root'; |
|
|
|
|
$mysql_pass=''; |
|
|
|
|
/** |
|
|
|
|
* Database configuration |
|
|
|
|
* INSTRUCTIONS |
|
|
|
|
* ============ |
|
|
|
|
* Change these parameters to compare between an old and a new database install. |
|
|
|
|
* You will need to create a course called 'COURSE' on each side to be able to compare the |
|
|
|
|
* courses databases. |
|
|
|
|
* If you have given fancy names to your databases, you will need to modify these names |
|
|
|
|
* in the two $bases_* variables definitions below. |
|
|
|
|
* Also, make sure about the prefix possibly used in front of the normal prefix for courses |
|
|
|
|
* databases (i.e. 'zPrefix_course' contains 'z' as additional prefix). |
|
|
|
|
*/ |
|
|
|
|
$sql_server_new='localhost'; |
|
|
|
|
$sql_user_new='root'; |
|
|
|
|
$sql_pass_new=''; |
|
|
|
|
$prefix_new = 'dokeos180_'; |
|
|
|
|
$bases_new=array($prefix_new.'dokeos_main',$prefix_new.'dokeos_stats',$prefix_new.'dokeos_user','z'.$prefix_new.'COURSE',$prefix_new.'dokeos_scorm'); |
|
|
|
|
$db_new = mysql_connect($sql_server_new,$sql_user_new,$sql_pass_new) or die(mysql_error()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$sql_server_old='localhost'; |
|
|
|
|
$sql_user_old='root'; |
|
|
|
|
$sql_pass_old=''; |
|
|
|
|
$prefix_old = 'dokeos160_'; |
|
|
|
|
$bases_old=array($prefix_old.'dokeos_main',$prefix_old.'dokeos_stats',$prefix_old.'dokeos_user',$prefix_old.'COURSE',$prefix_old.'dokeos_scorm'); |
|
|
|
|
$db_old = mysql_connect($sql_server_old,$sql_user_old,$sql_pass_old) or die(mysql_error()); |
|
|
|
|
|
|
|
|
|
$bases1=array('dokeos16_main','dokeos16_stats','dokeos16_scorm','dokeos16_COURSE'); |
|
|
|
|
$bases2=array('dokeos154_main','dokeos154_stats','dokeos154_scorm','dokeos154_COURSE'); |
|
|
|
|
/********************************/ |
|
|
|
|
|
|
|
|
|
mysql_connect($mysql_server,$mysql_user,$mysql_pass) or die(mysql_error()); |
|
|
|
|
|
|
|
|
|
foreach($bases1 as $num_base=>$base) |
|
|
|
|
foreach($bases_new as $num_base=>$base) |
|
|
|
|
{ |
|
|
|
|
$modif_tables=array(); |
|
|
|
|
$tables_db1=array(); |
|
|
|
|
$tables_db2=array(); |
|
|
|
|
$tables_db_new=array(); |
|
|
|
|
$tables_db_old=array(); |
|
|
|
|
$dump=array(); |
|
|
|
|
|
|
|
|
|
$query1="SHOW TABLES FROM `$bases1[$num_base]`"; |
|
|
|
|
$result1=mysql_query($query1); |
|
|
|
|
$query_new="SHOW TABLES FROM ".$bases_new[$num_base]; |
|
|
|
|
$result_new=mysql_query($query_new,$db_new); |
|
|
|
|
|
|
|
|
|
if($result1) |
|
|
|
|
if($result_new) |
|
|
|
|
{ |
|
|
|
|
$i=0; |
|
|
|
|
|
|
|
|
|
while($row1=mysql_fetch_row($result1)) |
|
|
|
|
while($row_new=mysql_fetch_row($result_new)) |
|
|
|
|
{ |
|
|
|
|
$dump[$i]['table_name']=$row1[0]; |
|
|
|
|
$dump[$i]['table_name']=$row_new[0]; |
|
|
|
|
$dump[$i]['fields']=array(); |
|
|
|
|
|
|
|
|
|
$query2="SHOW FIELDS FROM `$bases1[$num_base]`.`$row1[0]`"; |
|
|
|
|
$result2=mysql_query($query2) or die(mysql_error()); |
|
|
|
|
$query_old="SHOW FIELDS FROM ".$bases_new[$num_base].".".$row_new[0]; |
|
|
|
|
$result_old=mysql_query($query_old,$db_old) or die(mysql_error()); |
|
|
|
|
|
|
|
|
|
$j=0; |
|
|
|
|
|
|
|
|
|
while($row2=mysql_fetch_row($result2)) |
|
|
|
|
while($row_old=mysql_fetch_row($result_old)) |
|
|
|
|
{ |
|
|
|
|
$dump[$i]['fields'][$j][0]=$row2[0]; |
|
|
|
|
$dump[$i]['fields'][$j][1]=$row2[1]; |
|
|
|
|
$dump[$i]['fields'][$j][2]=$row2[2]; |
|
|
|
|
$dump[$i]['fields'][$j][3]=$row2[3]; |
|
|
|
|
$dump[$i]['fields'][$j][4]=$row2[4]; |
|
|
|
|
$dump[$i]['fields'][$j][5]=$row2[5]; |
|
|
|
|
$dump[$i]['fields'][$j][0]=$row_old[0]; |
|
|
|
|
$dump[$i]['fields'][$j][1]=$row_old[1]; |
|
|
|
|
$dump[$i]['fields'][$j][2]=$row_old[2]; |
|
|
|
|
$dump[$i]['fields'][$j][3]=$row_old[3]; |
|
|
|
|
$dump[$i]['fields'][$j][4]=$row_old[4]; |
|
|
|
|
$dump[$i]['fields'][$j][5]=$row_old[5]; |
|
|
|
|
|
|
|
|
|
$j++; |
|
|
|
|
} |
|
|
|
@ -82,8 +101,8 @@ foreach($bases1 as $num_base=>$base) |
|
|
|
|
|
|
|
|
|
foreach($dump as $table) |
|
|
|
|
{ |
|
|
|
|
$query="SHOW FIELDS FROM `$bases2[$num_base]`.`".$table['table_name']."`"; |
|
|
|
|
$result=mysql_query($query); |
|
|
|
|
$query="SHOW FIELDS FROM ".$bases_old[$num_base].".".$table['table_name']; |
|
|
|
|
$result=mysql_query($query,$db_old); |
|
|
|
|
|
|
|
|
|
if(!$result) |
|
|
|
|
{ |
|
|
|
@ -118,18 +137,18 @@ foreach($bases1 as $num_base=>$base) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$tables_db1[]=$table['table_name']; |
|
|
|
|
$tables_db_new[]=$table['table_name']; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$query="SHOW TABLES FROM `$bases2[$num_base]`"; |
|
|
|
|
$result=mysql_query($query) or die(mysql_error()); |
|
|
|
|
$query="SHOW TABLES FROM ".$bases_old[$num_base]; |
|
|
|
|
$result=mysql_query($query,$db_old) or die(mysql_error()); |
|
|
|
|
|
|
|
|
|
while($row=mysql_fetch_row($result)) |
|
|
|
|
{ |
|
|
|
|
$tables_db2[]=$row[0]; |
|
|
|
|
$tables_db_old[]=$row[0]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$diff=array_diff($tables_db2,$tables_db1); |
|
|
|
|
$diff=array_diff($tables_db_old,$tables_db_new); |
|
|
|
|
|
|
|
|
|
foreach($diff as $enreg) |
|
|
|
|
{ |
|
|
|
@ -142,5 +161,6 @@ foreach($bases1 as $num_base=>$base) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
mysql_close(); |
|
|
|
|
mysql_close($db_new); |
|
|
|
|
mysql_close($db_old); |
|
|
|
|
?> |