Поиск по сайту:

Личное присутствие вредит славе (Ф. Петрарка).

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

2 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
17 января 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,
],
],

 

Читать  7 Забавных команд в Linux

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

Наконец, все это не имело бы особого смысла, если бы вы решили пропустить часть автоматизации. Для этого вы хотите полагаться на задания 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.

Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close