disable transaction for mysql for restore, as a failure during restore may lead to an empty database, as drop table is not transactional for mysql

This commit is contained in:
Klaus Leithoff 2014-02-17 16:18:26 +00:00
parent 9f6d14690e
commit e95d46b7bc

View File

@ -359,7 +359,7 @@ class db_backup
$system_config[] = $row;
}
}
$this->db->transaction_begin();
if (substr($this->db->Type,0,5) != 'mysql') $this->db->transaction_begin();
// drop all existing tables
foreach($this->adodb->MetaTables('TABLES') as $table)
@ -616,9 +616,12 @@ class db_backup
unlink($name);
rmdir($dir.'/database_backup');
}
if (!$this->db->transaction_commit())
if (substr($this->db->Type,0,5) != 'mysql')
{
return lang('Restore failed');
if (!$this->db->transaction_commit())
{
return lang('Restore failed');
}
}
// flush instance cache
egw_cache::flush(egw_cache::INSTANCE);
@ -1026,4 +1029,4 @@ echo "<p>line='$line'</p>\n";
$fields = db_backup::csv_split($line);
echo "<pre>".print_r($fields,true)."</pre>\n";
//echo count($fields)." fields\n";
*/
*/