Merge pull request #9130 from hregis/8.0_bug

FIX disable/enable foreign key checking for avoid errors
This commit is contained in:
Laurent Destailleur 2018-07-24 16:55:37 +02:00 committed by GitHub
commit a65c4ebecd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1079,15 +1079,28 @@ if ($ok && GETPOST('force_utf8_on_tables','alpha'))
if ($db->type == "mysql" || $db->type == "mysqli")
{
$listoftables = $db->DDLListTables($db->database_name);
$force_utf8_on_tables = GETPOST('force_utf8_on_tables','alpha');
$listoftables = $db->DDLListTables($db->database_name);
// Disable foreign key checking for avoid errors
if ($force_utf8_on_tables == 'confirmed')
{
$sql='SET FOREIGN_KEY_CHECKS=0';
print '<!-- '.$sql.' -->';
$resql = $db->query($sql);
}
foreach($listoftables as $table)
{
// do not convert llx_const if mysql encrypt/decrypt is used
if ($conf->db->dolibarr_main_db_encryption != 0 && preg_match('/\_const$/', $table)) continue;
print '<tr><td colspan="2">';
print $table;
$sql='ALTER TABLE '.$table.' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci';
print '<!-- '.$sql.' -->';
if (GETPOST('force_utf8_on_tables','alpha') == 'confirmed')
if ($force_utf8_on_tables == 'confirmed')
{
$resql = $db->query($sql);
print ' - Done ('.($resql?'OK':'KO').')';
@ -1095,6 +1108,14 @@ if ($ok && GETPOST('force_utf8_on_tables','alpha'))
else print ' - Disabled';
print '</td></tr>';
}
// Enable foreign key checking
if ($force_utf8_on_tables == 'confirmed')
{
$sql='SET FOREIGN_KEY_CHECKS=1';
print '<!-- '.$sql.' -->';
$resql = $db->query($sql);
}
}
else
{