From 1a07b3f8d94a21eb6b5063a8336fa35a8d8a62dc Mon Sep 17 00:00:00 2001 From: Nico Stapelbroek Date: Tue, 24 Jul 2018 11:39:06 +0200 Subject: [PATCH] Remove references to the Laravel backup manager As proposed in https://github.com/CachetHQ/Cachet/pull/3150 the current backup solution produces too many edge cases when configured with the non-default options. Cachet should not be held responsible for backups since it's unable to complete this task properly. Feel free to re-add a laravel backup solution to your custom cachet instance. --- app/Subscribers/CommandSubscriber.php | 23 +-- config/app.php | 1 - config/backup.php | 196 -------------------------- database/backups/.gitignore | 2 - 4 files changed, 1 insertion(+), 221 deletions(-) delete mode 100644 config/backup.php delete mode 100644 database/backups/.gitignore diff --git a/app/Subscribers/CommandSubscriber.php b/app/Subscribers/CommandSubscriber.php index 52b267fe..b3d21710 100644 --- a/app/Subscribers/CommandSubscriber.php +++ b/app/Subscribers/CommandSubscriber.php @@ -128,7 +128,7 @@ class CommandSubscriber } /** - * Handle the main bulk of the command, clear the settings and backup the database. + * Handle the main bulk of the command, clear the settings * * @param \Illuminate\Console\Command $command * @@ -141,27 +141,6 @@ class CommandSubscriber $this->cache->clear(); $command->line('Settings cache cleared!'); - - // SQLite does not backup. - if ($this->config->get('database.default') === 'sqlite') { - $command->line('Backup skipped: SQLite is not supported.'); - - return; - } - - $command->line('Backing up database...'); - - try { - $command->call('backup:run', [ - '--only-db' => true, - '--no-interaction' => true, - ]); - } catch (Exception $e) { - $command->error($e->getMessage()); - $command->line('Backup skipped!'); - } - - $command->line('Backup completed!'); } /** diff --git a/config/app.php b/config/app.php index 37c91a6b..e16e4a7a 100644 --- a/config/app.php +++ b/config/app.php @@ -187,7 +187,6 @@ return [ Laravolt\Avatar\ServiceProvider::class, McCool\LaravelAutoPresenter\AutoPresenterServiceProvider::class, PragmaRX\Google2FA\Vendor\Laravel\ServiceProvider::class, - Spatie\Backup\BackupServiceProvider::class, Roumen\Feed\FeedServiceProvider::class, /* diff --git a/config/backup.php b/config/backup.php deleted file mode 100644 index c9682b15..00000000 --- a/config/backup.php +++ /dev/null @@ -1,196 +0,0 @@ - [ - - /* - * The name of this application. You can use this name to monitor - * the backups. - */ - 'name' => config('app.name'), - - 'source' => [ - - 'files' => [ - - /* - * The list of directories and files that will be included in the backup. - */ - 'include' => [ - base_path(), - ], - - /* - * These directories and files will be excluded from the backup. - * - * Directories used by the backup process will automatically be excluded. - */ - 'exclude' => [ - base_path('vendor'), - base_path('node_modules'), - ], - - /* - * Determines if symlinks should be followed. - */ - 'followLinks' => false, - ], - - /* - * The names of the connections to the databases that should be backed up - * MySQL, PostgreSQL, SQLite and Mongo databases are supported. - */ - 'databases' => [ - 'mysql', - ], - ], - - /* - * The database dump can be gzipped to decrease diskspace usage. - */ - 'gzip_database_dump' => false, - - 'destination' => [ - - /* - * The filename prefix used for the backup zip file. - */ - 'filename_prefix' => '', - - /* - * The disk names on which the backups will be stored. - */ - 'disks' => [ - 'database', - ], - ], - - /* - * The directory where the temporary files will be stored. - */ - 'temporary_directory' => storage_path('app/backup-temp'), - ], - - /* - * You can get notified when specific events occur. Out of the box you can use 'mail' and 'slack'. - * For Slack you need to install guzzlehttp/guzzle. - * - * You can also use your own notification classes, just make sure the class is named after one of - * the `Spatie\Backup\Events` classes. - */ - 'notifications' => [ - - 'notifications' => [ - \Spatie\Backup\Notifications\Notifications\BackupHasFailed::class => ['mail'], - \Spatie\Backup\Notifications\Notifications\UnhealthyBackupWasFound::class => ['mail'], - \Spatie\Backup\Notifications\Notifications\CleanupHasFailed::class => ['mail'], - \Spatie\Backup\Notifications\Notifications\BackupWasSuccessful::class => ['mail'], - \Spatie\Backup\Notifications\Notifications\HealthyBackupWasFound::class => ['mail'], - \Spatie\Backup\Notifications\Notifications\CleanupWasSuccessful::class => ['mail'], - ], - - /* - * Here you can specify the notifiable to which the notifications should be sent. The default - * notifiable will use the variables specified in this config file. - */ - 'notifiable' => \Spatie\Backup\Notifications\Notifiable::class, - - 'mail' => [ - 'to' => 'your@example.com', - ], - - 'slack' => [ - 'webhook_url' => '', - - /* - * If this is set to null the default channel of the webhook will be used. - */ - 'channel' => null, - - 'username' => null, - - 'icon' => null, - - ], - ], - - /* - * Here you can specify which backups should be monitored. - * If a backup does not meet the specified requirements the - * UnHealthyBackupWasFound event will be fired. - */ - 'monitorBackups' => [ - [ - 'name' => config('app.name'), - 'disks' => ['database'], - 'newestBackupsShouldNotBeOlderThanDays' => 1, - 'storageUsedMayNotBeHigherThanMegabytes' => 5000, - ], - - /* - [ - 'name' => 'name of the second app', - 'disks' => ['local', 's3'], - 'newestBackupsShouldNotBeOlderThanDays' => 1, - 'storageUsedMayNotBeHigherThanMegabytes' => 5000, - ], - */ - ], - - 'cleanup' => [ - /* - * The strategy that will be used to cleanup old backups. The default strategy - * will keep all backups for a certain amount of days. After that period only - * a daily backup will be kept. After that period only weekly backups will - * be kept and so on. - * - * No matter how you configure it the default strategy will never - * delete the newest backup. - */ - 'strategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class, - - 'defaultStrategy' => [ - - /* - * The number of days for which backups must be kept. - */ - 'keepAllBackupsForDays' => 7, - - /* - * The number of days for which daily backups must be kept. - */ - 'keepDailyBackupsForDays' => 16, - - /* - * The number of weeks for which one weekly backup must be kept. - */ - 'keepWeeklyBackupsForWeeks' => 8, - - /* - * The number of months for which one monthly backup must be kept. - */ - 'keepMonthlyBackupsForMonths' => 4, - - /* - * The number of years for which one yearly backup must be kept. - */ - 'keepYearlyBackupsForYears' => 2, - - /* - * After cleaning up the backups remove the oldest backup until - * this amount of megabytes has been reached. - */ - 'deleteOldestBackupsWhenUsingMoreMegabytesThan' => 5000, - ], - ], -]; diff --git a/database/backups/.gitignore b/database/backups/.gitignore deleted file mode 100644 index d6b7ef32..00000000 --- a/database/backups/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore