/** * Migrate categorie association * * @param DoliDB $db Database handler * @param Translate $langs Object langs * @param Conf $conf Object conf * @return void */ function migrate_categorie_association($db, $langs, $conf) { print '<tr><td colspan="4">'; print '<br>'; print '<b>' . $langs->trans('MigrationCategorieAssociation') . "</b><br>\n"; $error = 0; if ($db->DDLInfoTable(MAIN_DB_PREFIX . "categorie_association")) { dolibarr_install_syslog("upgrade2::migrate_categorie_association"); $db->begin(); $sqlSelect = "SELECT fk_categorie_mere, fk_categorie_fille"; $sqlSelect .= " FROM " . MAIN_DB_PREFIX . "categorie_association"; $resql = $db->query($sqlSelect); if ($resql) { $i = 0; $num = $db->num_rows($resql); if ($num) { while ($i < $num) { $obj = $db->fetch_object($resql); $sqlUpdate = "UPDATE " . MAIN_DB_PREFIX . "categorie SET "; $sqlUpdate .= "fk_parent = " . $obj->fk_categorie_mere; $sqlUpdate .= " WHERE rowid = " . $obj->fk_categorie_fille; $result = $db->query($sqlUpdate); if (!$result) { $error++; dol_print_error($db); } print ". "; $i++; } } else { print $langs->trans('AlreadyDone') . "<br>\n"; } if (!$error) { // TODO DROP table in the next release /* $sqlDrop = "DROP TABLE ".MAIN_DB_PREFIX."categorie_association"; if ($db->query($sqlDrop)) { $db->commit(); } else { $db->rollback(); } */ $db->commit(); } else { $db->rollback(); } } else { dol_print_error($db); $db->rollback(); } } else { print $langs->trans('AlreadyDone') . "<br>\n"; } print '</td></tr>'; }
/** * Migration des tables de relation * * @param DoliDB $db Database handler * @param Translate $langs Object langs * @param Conf $conf Object conf * @param string $table Table name * @param int $fk_source Id of element source * @param type $sourcetype Type of element source * @param int $fk_target Id of element target * @param type $targettype Type of element target * @return void */ function migrate_relationship_tables($db,$langs,$conf,$table,$fk_source,$sourcetype,$fk_target,$targettype) { print '<tr><td colspan="4">'; print '<br>'; print '<b>'.$langs->trans('MigrationRelationshipTables',MAIN_DB_PREFIX.$table)."</b><br>\n"; $error = 0; if ($db->DDLInfoTable(MAIN_DB_PREFIX.$table)) { dolibarr_install_syslog("upgrade2::migrate_relationship_tables table = ".MAIN_DB_PREFIX.$table); $db->begin(); $sqlSelect = "SELECT ".$fk_source.", ".$fk_target; $sqlSelect.= " FROM ".MAIN_DB_PREFIX.$table; $resql = $db->query($sqlSelect); if ($resql) { $i = 0; $num = $db->num_rows($resql); if ($num) { while ($i < $num) { $obj = $db->fetch_object($resql); $sqlInsert = "INSERT INTO ".MAIN_DB_PREFIX."element_element ("; $sqlInsert.= "fk_source"; $sqlInsert.= ", sourcetype"; $sqlInsert.= ", fk_target"; $sqlInsert.= ", targettype"; $sqlInsert.= ") VALUES ("; $sqlInsert.= $obj->$fk_source; $sqlInsert.= ", '".$sourcetype."'"; $sqlInsert.= ", ".$obj->$fk_target; $sqlInsert.= ", '".$targettype."'"; $sqlInsert.= ")"; $result=$db->query($sqlInsert); if (! $result) { $error++; dol_print_error($db); } print ". "; $i++; } } else { print $langs->trans('AlreadyDone')."<br>\n"; } if ($error == 0) { $sqlDrop = "DROP TABLE ".MAIN_DB_PREFIX.$table; if ($db->query($sqlDrop)) { $db->commit(); } else { $db->rollback(); } } else { $db->rollback(); } } else { dol_print_error($db); $db->rollback(); } } else { print $langs->trans('AlreadyDone')."<br>\n"; } print '</td></tr>'; }