disable FOREIGN_KEY_CHECKS when restore

This commit is contained in:
Ibnu Maksum 2024-05-14 14:25:34 +07:00
parent ae3db05649
commit fa50539faa
No known key found for this signature in database
GPG Key ID: 7FC82848810579E5

View File

@ -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 {