带按钮的Laravel数据库备份到Dropbox
我将此安装到我的laravel项目中:带按钮的Laravel数据库备份到Dropbox,laravel,backup,dropbox,Laravel,Backup,Dropbox,我将此安装到我的laravel项目中: backup-manager/laravel league/flysystem-dropbox 因为我可以将我的数据库备份到dropbox,但这可以通过终端使用php artisan完成,如何在我的设置页面上创建一个按钮,当我单击时,它可以调用此备份功能 我可以调用一个函数来触发这个备份函数吗?或者它可以由php artisan完成 我试着跑 Artisan::call('db:backup'); 并显示错误 Maximum execution tim
backup-manager/laravel
league/flysystem-dropbox
因为我可以将我的数据库备份到dropbox,但这可以通过终端使用php artisan完成,如何在我的设置页面上创建一个按钮,当我单击时,它可以调用此备份功能
我可以调用一个函数来触发这个备份函数吗?或者它可以由php artisan完成
我试着跑
Artisan::call('db:backup');
并显示错误
Maximum execution time of 60 seconds exceeded
当我从终点站跑出来的时候,一切都很好
如何从我的控制器运行此功能
php artisan db:backup --database=pgsql --destination=dropbox --destinationPath=`date +\%d-%m-%Y %H:%i:%s`-digitization.sql --compression=null
请有人帮帮我
这是我使用ajax编写的脚本
<script type="text/javascript">
$("#backup").click(function(){
var url = $(this).data("url");
$.ajax({
url: url
}).done(function() {
alert("asdsad");
});
});
</script>
$(“#备份”)。单击(函数(){
var url=$(this).data(“url”);
$.ajax({
url:url
}).done(函数(){
警报(“asdsad”);
});
});
试试这个
可以从调用artisan命令 大概
Route::get('/backupdatabase', function () {
$exitCode = Artisan::call('db:backup');
}
如果您的数据库太大,可能无法在浏览器上运行,那么最好与cron作业一起使用。您可以找到cron作业设置文档。还有一些
希望对您有所帮助。您可以通过代码调用artisan命令 所以如果你需要运行这个 php artisan db:backup--database=pgsql--destination=dropbox--destinationPath=
date+\%d-%m-%Y%H:%i:%s
-digitation.sql--compression=null
然后你可以这样做:
Route::get('/db_backup', function () {
var $now = Carbon\Carbon::now();
$exitCode = Artisan::call('db:backup',
[
'--database' => 'pgsql',
'--destination' => 'dropbox',
'--destinationPath' => $now->toDateTimeString().'-digitization.sql',
'--compression' => null
]
);
});
1) 在“刀片创建”按钮中:
<button onclick="backup()"></button>
3) 在routes.php中:
Route::post('/admin/system/db-backup', [
'as' => 'system.dbBackup',
'uses' => 'Website\SystemController@postDbBackUp'
]);
4) 在控制器(SystemController.php)中:
它会一直加载,直到出现错误,因为最大执行时间超过60秒,会发生什么@vonec@yudijohn如果数据库的大小很大,它可能会超时,所以请尝试通过Cron作业将其放入。如果我使用Cron,那么备份会自动运行吗?所以我不能按备用按钮@vonec@yudijohn如果您需要一个按钮,您可以尝试通过ajax调用备份方法,而不是通过普通形式的post.edited应答来提供参数示例错误类“App\Http\Controllers\Carbon”未找到如果我使用控制器名称更改corbon,则此错误显示对未定义方法的调用illumb\Database\Query\Builder::now()
Route::post('/admin/system/db-backup', [
'as' => 'system.dbBackup',
'uses' => 'Website\SystemController@postDbBackUp'
]);
public function postDbBackUp () {
$now = Carbon::now()->format("Y-m-d-H-m-i").'-backup.sql';
try {
Artisan::call('db:backup',
[
'--database' => 'mysql',
'--destination' => 'local',
'--destinationPath' =>$now,
'--compression' => 'gzip'
]
);
}
catch(\Exception $e) {
return Response::json([
'success' => false,
'errors' => ""
], 400);
}
return Response::json([
'success' => true,
'message' => 'success'
]);
}