'How to restore Mysql database from backup in Laravel?
I am trying to add a database restore feature to my application based on Laravel but don't know exactly where to start?
What I just Tried So Far
//restore database from backup
public function restore($file_name)
{
try {
$DB_HOST = env("DB_HOST", "");
$DB_DATABASE = env("DB_DATABASE", "");
$DB_USERNAME = env("DB_USERNAME", "");
$DB_PASSWORD = env("DB_PASSWORD", "");
$connection = mysqli_connect($DB_HOST, $DB_USERNAME, $DB_PASSWORD, $DB_DATABASE);
$file = config('backup.backup.name') . '/' . $file_name;
$disk = Storage::disk(config('backup.backup.destination.disks')[0]);
if ($disk->exists($file)) {
$fs = Storage::disk(config('backup.backup.destination.disks')[0])->getDriver();
$handle = fopen($file, "r+");
$contents = fread($handle, filesize($file));
$sql = explode(';', $contents);
$flag = 0;
foreach ($sql as $query) {
$result = mysqli_query($connection, $query);
if ($result) {
$flag = 1;
}
}
fclose($handle);
} else {
abort(404, "The backup file doesn't exist.");
}
if ($flag) {
Toastr::success('Operation successful', 'Success');
return redirect()->back();
} else {
Toastr::error('Operation Failed', 'Failed');
return redirect()->back();
}
} catch (\Exception $e) {
Toastr::error('Operation Failed', 'Failed');
return redirect()->back();
}
}
I am using A flysystem driver for Dropbox that uses the v2 API to backup my database to Dropbox.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
