welltonmiranda / backup-database
生成数据库备份并将其发送到:FTP、Digital Ocean Spaces 或电子邮件
dev-stable
2022-07-02 13:49 UTC
Requires
- php: ^7.3|^8.0
- laravel/framework: >=8.0
- league/flysystem-aws-s3-v3: ^1.0
- league/flysystem-sftp: ~1.0
This package is auto-updated.
Last update: 2024-09-30 01:52:10 UTC
README
通过 composer 安装
composer require --with-all-dependencies welltonmiranda/backup-database
如果发生错误,将创建 "jobs" 迁移文件,该文件应该已经存在于您的安装中
php artisan queue:table
如果发生错误,将创建 "failed_jobs" 迁移文件,该文件应该已经存在于您的安装中
php artisan queue:failed-table
执行创建 "jobs"、"failed_jobs" 和 "backup_database" 表的操作
php artisan migrate
如果发生错误,将创建配置文件 config\backup_database.php
,该文件应该已经存在于您的安装中
php artisan vendor:publish --tag=backup-database-config
安装后,请将以下行添加到您的 app\Console\Kernel.php
$env = config('app.env');
if (($env == 'local' AND config('backup_database.local')) OR ($env != 'local' AND config('backup_database.production'))):
$schedule->command('backup:database')->{config('backup_database.schedule', 'hourly')}()->timezone('America/Sao_Paulo');
$schedule->command('queue:work database --queue=high,backup-database --stop-when-empty --tries=' . config('backup_database.tries', '3') . ' --timeout=' . config('backup_database.timeout', '60'))->everyMinute()->timezone('America/Sao_Paulo');
$schedule->command('remove:backup')->everyMinute()->timezone('America/Sao_Paulo');
endif;
// Opcional: As tarefas falhas voltam para fila de hora em hora
$schedule->command('queue:retry all')->hourly();
配置文件 config\backup_database.php
的位置
return [
'local' => false, // Habilita/desabilita no modo desenvolvimento
'production' => false, // Habilita/desabilita no modo produção
'schedule' => 'hourly', // Opções configuráveis: everyMinute, everyFiveMinutes, everyTenMinutes, everyFifteenMinutes, everyThirtyMinutes, hourly, daily, weekly
'tries' => '3', // Tentativas
'timeout' => '60', // Tempo limite
'expire_days' => '3', // Tempo para os arquivos expirar e serem excluídos
'plataforms' => [
[
'disk' => 'spaces', // Obs: Não alterar este valor
'active' => false, // Ativado/desativado
'endpoint' => '',
'key' => '',
'secret' => '',
'root' => 'backup/database/{{app_name}}', // Obs: Não alterar ou remover o {{app_name}}
'region' => '',
'bucket' => '',
'visibility' => 'public',
'driver' => 's3', // Obs: Não alterar este valor
],
[
'disk' => 'mail', // Obs: Não alterar este valor
'active' => false, // Ativado/desativado
'emails' => [], // Ex: ['email@google.com','email2@google.com']
],
[
'disk' => 'ftp', // Não modificar
'active' => false, // Ativado/desativado
'driver' => 'ftp', // Obs: Não alterar este valor
'host' => '',
'username' => '',
'password' => '',
'port' => (int) 21,
'root' => 'backup-database', // Obs: Dentro da raiz do ftp crie uma pasta/local aonde serão salvos. Ex: backup-database
'passive' => (bool) false,
'ssl' => (bool) false,
'timeout' => (int) 60,
],
],
];