welltonmiranda/

backup-database

生成数据库备份并将其发送到:FTP、Digital Ocean Spaces 或电子邮件

dev-stable 2022-07-02 13:49 UTC

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,
		],

	],
];