|
@@ -830,142 +830,7 @@ $CONNLOCAL->query('set global max_allowed_packet=1000000000');
|
|
|
// $STRUCT_TABLE['CRM_LISTA_ZASOBOW']='PARENT_ID';
|
|
// $STRUCT_TABLE['CRM_LISTA_ZASOBOW']='PARENT_ID';
|
|
|
|
|
|
|
|
}//eof FUNC FROM_ZASOBY_TO_ZASOBY
|
|
}//eof FUNC FROM_ZASOBY_TO_ZASOBY
|
|
|
- /* function has been moved to DB:: @2014-06-24
|
|
|
|
|
- function STRUCTURE_GENERATE($TABLES,$CONNREMOTE,$TABLES_STRUCTURE_DATA){
|
|
|
|
|
- //global $CONNREMOTE;
|
|
|
|
|
- //! try to create info for functions and procedures -> ['__SCHEMA_FUNCTIONS__ARRAY__']
|
|
|
|
|
- $sql="show function status;";
|
|
|
|
|
- $result=$CONNREMOTE->query($sql) or die1('\nProblem z '.$sql);
|
|
|
|
|
- while($h=mysql_fetch_object($result)) {
|
|
|
|
|
- $sql_="show create function `{$h->Name}`" ;
|
|
|
|
|
- DEBUG_S(-3,'sql function detail :: ',$sql_,__FILE__,__FUNCTION__,__LINE__) ;
|
|
|
|
|
- $result_=$CONNREMOTE->query($sql_) or die1('\nProblem z '.$sql);
|
|
|
|
|
- while($h_=mysql_fetch_object($result_)) {
|
|
|
|
|
- $TABLES_IMPORT['__SCHEMA_FUNCTIONS__ARRAY__']['FUNCTION'][$h->Name]=$h_;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- $sql="show PROCEDURE status;";
|
|
|
|
|
- $result=$CONNREMOTE->query($sql) or die1('\nProblem z '.$sql);
|
|
|
|
|
- while($h=mysql_fetch_object($result)) {
|
|
|
|
|
- $sql_="show create PROCEDURE `{$h->Name}`" ;
|
|
|
|
|
- DEBUG_S(-3,'sql PROCEDURE detail :: ',$sql_,__FILE__,__FUNCTION__,__LINE__) ;
|
|
|
|
|
- $result_=$CONNREMOTE->query($sql_) or die1('\nProblem z '.$sql);
|
|
|
|
|
- while($h_=mysql_fetch_object($result_)) {
|
|
|
|
|
- $TABLES_IMPORT['__SCHEMA_FUNCTIONS__ARRAY__']['PROCEDURE'][$h->Name]=$h_;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- DEBUG_S(-3,'struktury funkcji: __SCHEMA_FUNCTIONS__ARRAY__ ',$TABLES_IMPORT['__SCHEMA_FUNCTIONS__ARRAY__'],__FILE__,__FUNCTION__,__LINE__) ;
|
|
|
|
|
- //die1('stop function during dev.');
|
|
|
|
|
-
|
|
|
|
|
- foreach($TABLES as $TABLE ){
|
|
|
|
|
-
|
|
|
|
|
- $sql="show tables like '".$TABLE."' ;" ;
|
|
|
|
|
- DEBUG_S(-3,'//! Listing possible tables to write to config',$sql,__FILE__,__FUNCTION__,__LINE__);
|
|
|
|
|
- $result=$CONNREMOTE->query($sql) or die1('\nProblem z '.$sql);
|
|
|
|
|
- if(mysql_num_rows($result)==0) {
|
|
|
|
|
- // nie ma tabeli - trzeba zapisac
|
|
|
|
|
- DEBUG_S(-3," BRAK TABELI ".$TABLE,null,__FILE__,__FUNCTION__,__LINE__);
|
|
|
|
|
- //die1();
|
|
|
|
|
- if(isset($TABLES_IMPORT[$TABLE])) {
|
|
|
|
|
- DEBUG_S(-3," Table already imported - problem in twice declared table ".$TABLE,null,__FILE__,__FUNCTION__,__LINE__);
|
|
|
|
|
- die1();
|
|
|
|
|
- }
|
|
|
|
|
- } else {
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- $sql="show full tables like '".$TABLE."' ;" ;
|
|
|
|
|
- $result=$CONNREMOTE->query($sql) or die1('\nProblem z '.$sql);
|
|
|
|
|
- while($h=mysql_fetch_object($result)) {
|
|
|
|
|
- $TABLES_IMPORT[$TABLE]['Table_type']=$h->{'Table_type'};
|
|
|
|
|
- DEBUG_S(-3,'//! Reading to conf if table is WIEV or not :sql/result',array($sql,$h->{'Table_type'}),__FILE__,__FUNCTION__,__LINE__);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- if($TABLES_IMPORT[$TABLE]['Table_type']=='BASE TABLE') {
|
|
|
|
|
-
|
|
|
|
|
- $sql=" describe `".$TABLE."` ;" ;
|
|
|
|
|
- //echo "\n ".$sql;
|
|
|
|
|
- $result=$CONNREMOTE->query($sql) or die1('\nProblem z '.$sql);
|
|
|
|
|
- while($h=mysql_fetch_object($result)) {
|
|
|
|
|
- $TABLES_IMPORT[$TABLE]['FIELDS'][]=$h;
|
|
|
|
|
- }
|
|
|
|
|
- $sql=" show index from `".$TABLE."` ;" ;
|
|
|
|
|
- $result=$CONNREMOTE->query($sql) or die1('\nProblem z '.$sql);
|
|
|
|
|
- $TMP_KEYNAME=array();
|
|
|
|
|
- while($h=mysql_fetch_object($result)) {
|
|
|
|
|
- if(isset($h->Column_name)) { $h->Column_name="`".$h->Column_name."`";
|
|
|
|
|
- if(!isset($TMP_KEYNAME[$h->Key_name])) $TMP_KEYNAME[$h->Key_name]=$h->Column_name;
|
|
|
|
|
- else $TMP_KEYNAME[$h->Key_name].=",".$h->Column_name;
|
|
|
|
|
- }
|
|
|
|
|
- //if(isset($TABLES_IMPORT[$TABLE]['INDEX'][$h->Key_name])) {
|
|
|
|
|
- // $TABLES_IMPORT[$TABLE]['INDEX'][$h->Key_name]->Column_name.=", ".$h->Column_name." ";
|
|
|
|
|
- //} else {
|
|
|
|
|
- //}
|
|
|
|
|
- $TABLES_IMPORT[$TABLE]['INDEX'][$h->Key_name]=$h;
|
|
|
|
|
- $TABLES_IMPORT[$TABLE]['INDEX'][$h->Key_name]->Column_name=$TMP_KEYNAME[$h->Key_name];
|
|
|
|
|
- }
|
|
|
|
|
- if(in_array($TABLE,$TABLES_STRUCTURE_DATA)) { //bedziemy dodawac dane tej tabeli
|
|
|
|
|
- $sql=" select * from `".$TABLE."` ;" ;
|
|
|
|
|
- $result=$CONNREMOTE->query($sql) or die1('\nProblem z '.$sql);
|
|
|
|
|
- while($h=mysql_fetch_object($result)) {
|
|
|
|
|
- $TABLES_IMPORT[$TABLE]['VALUES'][]=$h;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- DEBUG_S(-3,"Dane tabeli KOMORKI ".$TABLE." ",$TABLES_IMPORT[$TABLE]['FIELDS'],__FILE__, __FUNCTION__, __LINE__);
|
|
|
|
|
- DEBUG_S(-3,"Dane tabeli INDEKSY ".$TABLE." ",$TABLES_IMPORT[$TABLE]['INDEX'],__FILE__, __FUNCTION__, __LINE__);
|
|
|
|
|
- if(isset($TABLES_IMPORT[$TABLE]['VALUES'])) DEBUG_S(-3,"Dane tabeli VALUES ".$TABLE." ",$TABLES_IMPORT[$TABLE]['VALUES'],__FILE__, __FUNCTION__, __LINE__);
|
|
|
|
|
-
|
|
|
|
|
- //! reading triggers to conf -> $TABLES_IMPORT[$TABLE]['TRIGGERS']
|
|
|
|
|
- $sql=" show triggers like '".$TABLE."' ;" ;
|
|
|
|
|
- $result=$CONNREMOTE->query($sql) or die1('\nProblem z '.$sql);
|
|
|
|
|
- while($h=mysql_fetch_object($result)) {
|
|
|
|
|
- $sql_="show create trigger {$h->Trigger} ;" ;
|
|
|
|
|
- echo $sql_;
|
|
|
|
|
- $result_=$CONNREMOTE->query($sql_) or die1('\nProblem z '.$sql_);
|
|
|
|
|
- while($h_=mysql_fetch_object($result_)) {
|
|
|
|
|
- DEBUG_S(-3,"Dane tabeli h_ ".$TABLE." ",$h_,__FILE__, __FUNCTION__, __LINE__);
|
|
|
|
|
- $TABLES_IMPORT[$TABLE]['TRIGGERS'][$h->Trigger]=$h_;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if(isset($TABLES_IMPORT[$TABLE]['TRIGGERS'])) DEBUG_S(-3,"Dane tabeli TRIGGERS ".$TABLE." ",$TABLES_IMPORT[$TABLE]['TRIGGERS'],__FILE__, __FUNCTION__, __LINE__);
|
|
|
|
|
-
|
|
|
|
|
- } else if($TABLES_IMPORT[$TABLE]['Table_type']=='VIEW') {
|
|
|
|
|
-
|
|
|
|
|
- $sql_="show create view `{$TABLE}` ;" ;
|
|
|
|
|
- //echo $sql_;
|
|
|
|
|
- $result_=$CONNREMOTE->query($sql_) or die1('\nProblem z '.$sql_);
|
|
|
|
|
- while($h_=mysql_fetch_object($result_)) {
|
|
|
|
|
- DEBUG_S(-3,"//! trying to fetch create view fom".$TABLE." sql/res",array($sql_,$h_),__FILE__, __FUNCTION__, __LINE__);
|
|
|
|
|
- $TABLES_IMPORT[$TABLE]['VIEW']=$h_;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- } else {
|
|
|
|
|
- DEBUG_S(-3,"Unknown table type ! ".$TABLE." ".$TABLES_IMPORT[$TABLE]['Table_type'],$TABLES_IMPORT[$TABLE],__FILE__, __FUNCTION__, __LINE__);
|
|
|
|
|
- die1();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- //print_r($TABLES_IMPORT);
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- function func_sort_tables_import($a,$b){
|
|
|
|
|
- if($a['Table_type']==$b['Table_type']) return 0;
|
|
|
|
|
- else if($a['Table_type']=='VIEW') return 1;
|
|
|
|
|
- else return -1;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- uasort($TABLES_IMPORT,'func_sort_tables_import');
|
|
|
|
|
-
|
|
|
|
|
- DEBUG_S(-3,'Wygenerowane struktury (TABLES_IMPORT)',$TABLES_IMPORT,__FILE__,__FUNCTION__,__LINE__);
|
|
|
|
|
- return($TABLES_IMPORT);
|
|
|
|
|
- }
|
|
|
|
|
- */
|
|
|
|
|
|
|
+
|
|
|
//funkcja do usuniecia zasobow ze zdublowanymi nazwami, najlepiej tych, ktore nie maja uzytych procesow
|
|
//funkcja do usuniecia zasobow ze zdublowanymi nazwami, najlepiej tych, ktore nie maja uzytych procesow
|
|
|
function STRUCTURE_SYNC_REMOVE_DUP_RESOURCE_NAMES($DUP_RESOURCE_PARENT_ID,$DUP_RESOURCE_DESC,$CONNREMOTE,$CONFIRM_SQL_UPDATE) {
|
|
function STRUCTURE_SYNC_REMOVE_DUP_RESOURCE_NAMES($DUP_RESOURCE_PARENT_ID,$DUP_RESOURCE_DESC,$CONNREMOTE,$CONFIRM_SQL_UPDATE) {
|
|
|
DEBUG_S(-3,'Bede czyscic tabele struktury dla ',array($DUP_RESOURCE_PARENT_ID,$DUP_RESOURCE_DESC,$CONNREMOTE,__FILE__, __FUNCTION__, __LINE__));
|
|
DEBUG_S(-3,'Bede czyscic tabele struktury dla ',array($DUP_RESOURCE_PARENT_ID,$DUP_RESOURCE_DESC,$CONNREMOTE,__FILE__, __FUNCTION__, __LINE__));
|
|
@@ -1025,6 +890,7 @@ $CONNLOCAL->query('set global max_allowed_packet=1000000000');
|
|
|
if($SYNC_OPTIONS=='CREATE_ZASOBY_STRUCTURES_CONFIG') {//budowa struktur w bazie
|
|
if($SYNC_OPTIONS=='CREATE_ZASOBY_STRUCTURES_CONFIG') {//budowa struktur w bazie
|
|
|
|
|
|
|
|
$TABLES_IMPORT=$CONNREMOTE->STRUCTURE_GENERATE($TABLES_STRUCTURE,null,$TABLES_STRUCTURE_DATA);
|
|
$TABLES_IMPORT=$CONNREMOTE->STRUCTURE_GENERATE($TABLES_STRUCTURE,null,$TABLES_STRUCTURE_DATA);
|
|
|
|
|
+ $CONNREMOTE->STRUCTURE_GENERATE_to_xsd($TABLES_IMPORT,$CONNREMOTE,'/tmp/schema'); //Generujemy XSD dla struktur
|
|
|
|
|
|
|
|
// $TABLES_IMPORT=STRUCTURE_GENERATE($TABLES_STRUCTURE,$CONNREMOTE,$TABLES_STRUCTURE_DATA);
|
|
// $TABLES_IMPORT=STRUCTURE_GENERATE($TABLES_STRUCTURE,$CONNREMOTE,$TABLES_STRUCTURE_DATA);
|
|
|
|
|
|