disable FOREIGN_KEY_CHECKS when restore
This commit is contained in:
parent
ae3db05649
commit
fa50539faa
@ -732,22 +732,48 @@ switch ($action) {
|
|||||||
$suc = 0;
|
$suc = 0;
|
||||||
$fal = 0;
|
$fal = 0;
|
||||||
$json = json_decode(file_get_contents($_FILES['json']['tmp_name']), true);
|
$json = json_decode(file_get_contents($_FILES['json']['tmp_name']), true);
|
||||||
|
try{
|
||||||
|
ORM::raw_execute("SET FOREIGN_KEY_CHECKS=0;");
|
||||||
|
} catch (Throwable $e) {
|
||||||
|
} catch (Exception $e) {
|
||||||
|
}
|
||||||
|
try{
|
||||||
|
ORM::raw_execute("SET GLOBAL FOREIGN_KEY_CHECKS=0;");
|
||||||
|
} catch (Throwable $e) {
|
||||||
|
} catch (Exception $e) {
|
||||||
|
}
|
||||||
foreach ($json as $table => $records) {
|
foreach ($json as $table => $records) {
|
||||||
ORM::raw_execute("TRUNCATE $table;");
|
ORM::raw_execute("TRUNCATE $table;");
|
||||||
foreach ($records as $rec) {
|
foreach ($records as $rec) {
|
||||||
$t = ORM::for_table($table)->create();
|
try{
|
||||||
foreach ($rec as $k => $v) {
|
$t = ORM::for_table($table)->create();
|
||||||
if ($k != 'id') {
|
foreach ($rec as $k => $v) {
|
||||||
$t->set($k, $v);
|
if ($k != 'id') {
|
||||||
|
$t->set($k, $v);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
if ($t->save()) {
|
||||||
if ($t->save()) {
|
$suc++;
|
||||||
$suc++;
|
} else {
|
||||||
} else {
|
$fal++;
|
||||||
|
}
|
||||||
|
} catch (Throwable $e) {
|
||||||
|
$fal++;
|
||||||
|
} catch (Exception $e) {
|
||||||
$fal++;
|
$fal++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
try{
|
||||||
|
ORM::raw_execute("SET FOREIGN_KEY_CHECKS=1;");
|
||||||
|
} catch (Throwable $e) {
|
||||||
|
} catch (Exception $e) {
|
||||||
|
}
|
||||||
|
try{
|
||||||
|
ORM::raw_execute("SET GLOBAL FOREIGN_KEY_CHECKS=1;");
|
||||||
|
} catch (Throwable $e) {
|
||||||
|
} catch (Exception $e) {
|
||||||
|
}
|
||||||
if (file_exists($_FILES['json']['tmp_name'])) unlink($_FILES['json']['tmp_name']);
|
if (file_exists($_FILES['json']['tmp_name'])) unlink($_FILES['json']['tmp_name']);
|
||||||
r2(U . "settings/dbstatus", 's', "Restored $suc success $fal failed");
|
r2(U . "settings/dbstatus", 's', "Restored $suc success $fal failed");
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user