Поиск по сайту:
Таков неизбежный закон, что ошибка идет всегда следом за истиной (Екатерина II).

Laravel. Как сделать резервную копию базы данных

17.01.2021
Как автоматически развертывать приложения Laravel с помощью Deployer на Ubuntu 16.04

Проблема

К сожалению, многие новые разработчики Laravel не осознают этого, пока не введут свой код в производство, и что-то происходит, поэтому они теряют свои данные.

Laravel не предлагает резервное копирование базы данных как часть своей основной функциональности, поэтому новые разработчики Laravel не могут работать с этим, читая статьи Laravel или создавая приложение Laravel.

Сегодня становится все более важным хранить и сохранять данные резервных копий на случай, если вам когда-нибудь понадобится их использовать.

Распространенные ошибки новых разработчиков Laravel — это перейти к phpmyadmin и попытаться запустить этот экспорт вручную. Хотя это по-прежнему будет работать, это не лучшая практика, потому что иногда вас не будет там, чтобы сделать резервную копию, а ваши пользователи уже создали новые данные.

Вы хотите автоматизировать это.

 

Решение

Есть много способов сделать резервную копию своей базы данных, но сколько людей используют этот пакет  https://github.com/spatie/laravel-backup  . Компания, стоящая за этим, очень надежна и известна в отрасли.

Во-первых, пакет БЕСПЛАТНЫЙ, поэтому вам не нужно ничего платить.

С другой стороны, установка довольно проста, и что мне особенно нравится, так это то, что она не только выполняет резервное копирование вашей базы данных, у вас также есть возможность резервного копирования ваших файлов, а затем сохранения всего этого в zip-файле. Когда я говорю файлы, я имею в виду файлы хранилища, такие как загружаемые документы или файлы, которые вы создаете с помощью своего приложения.

Читать  Как передать именованный аргумент в сценарии оболочки?

Кроме того, вы также можете перенести это на AWS S3, что является разумным решением. Все, что вам нужно сделать, это (при условии, что у вас уже есть учетная запись AWS, это создать новую корзину S3 с новыми разрешениями. Затем вы можете просто следовать документации на их странице Github.

Вот краткий предварительный просмотр файла конфигурации, который вы можете настроить, чтобы получать уведомления через другие средства, такие как Slack и электронная почта.

‘notifications’ => [

‘notifications’ => [
\Spatie\Backup\Notifications\Notifications\BackupHasFailed::class         => [‘mail’, ‘slack’],
\Spatie\Backup\Notifications\Notifications\UnhealthyBackupWasFound::class => [‘mail’, ‘slack’],
\Spatie\Backup\Notifications\Notifications\CleanupHasFailed::class        => [‘mail’, ‘slack’],
\Spatie\Backup\Notifications\Notifications\BackupWasSuccessful::class     => [‘mail’, ‘slack’],
\Spatie\Backup\Notifications\Notifications\HealthyBackupWasFound::class   => [‘mail’, ‘slack’],
\Spatie\Backup\Notifications\Notifications\CleanupWasSuccessful::class    => [‘mail’, ‘slack’],
],

/*
* Здесь вы можете указать уведомляемый объект, на который должны быть отправлены уведомления. Значение по умолчанию
* будет использовать переменные, указанные в этом конфигурационном файле.
*/
‘notifiable’ => \Spatie\Backup\Notifications\Notifiable::class,

‘mail’ => [
‘to’ => [‘editor@andreyex.ru’],
],

‘slack’ => [
‘webhook_url’ => ‘https://hooks.slack.com/services/ABMGGK7AB/B9PBCDSM8/kam02gzLrycaUBctgAdRv52M’,

/*
* Если это значение равно нулю, то будет использоваться канал webhook по умолчанию.
*/
‘channel’ => null,
],
],

 

Настроить автоматизацию

Наконец, все это не имело бы особого смысла, если бы вы решили пропустить часть автоматизации. Для этого вы хотите полагаться на задания cron, которые уже должны быть включены на вашем хосте, и указатель на команду расписания Laravel следующим образом:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Отсюда в вашем файле app/console/kernel.php вы должны сделать следующее, если хотите автоматизировать его в определенное время (я обычно делаю это, когда большинство наших пользователей спят):

if (app(‘env’) == ‘production’) {
$schedule->command(‘backup:clean’)->daily()->at(’01:00′);
$schedule->command(‘backup:run’)->daily()->at(’02:00′);
}

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Управление логическими томами или LVM - это структура операционной системы…

Спасибо!

Теперь редакторы в курсе.