laravel

Laravel Comment sauvegarder une base de données

Laravel Comment sauvegarder une base de données

Problème

Malheureusement, de nombreux nouveaux développeurs de Laravel ne s'en rendent pas compte jusqu'à ce qu'ils mettent leur code en production, et quelque chose se passe donc ils perdent leurs données.

Laravel n'offre pas de sauvegarde de base de données dans le cadre de leurs fonctionnalités principales, de sorte que les nouveaux développeurs Laravel ne travaillent pas avec cela lorsqu'ils lisent des articles Laravel ou créent une application Laravel.

Aujourd'hui, il devient de plus en plus important de stocker et de préserver vos données de sauvegarde au cas où vous auriez besoin de les utiliser.

Les erreurs courantes que font les nouveaux développeurs Laravel est d'aller sur phpmyadmin et d'essayer d'exécuter cette exportation manuellement. Bien que cela fonctionne toujours, ce n'est pas la meilleure pratique car parfois vous ne serez pas là pour faire la sauvegarde et vos utilisateurs ont déjà généré de nouvelles données.

Ce que vous voulez faire, c'est automatiser cela.

Solution

Il existe de nombreuses façons de sauvegarder votre base de données, mais combien de personnes utilisent ce package https://github.com/spatie/laravel-backup . L'entreprise derrière elle est très fiable et connue dans l'industrie.

Tout d'abord, le forfait est GRATUIT, vous n'avez donc rien à payer.

Du côté positif, l'installation est assez simple et ce que j'aime particulièrement, c'est que non seulement elle sauvegarde votre base de données, vous avez également la possibilité de sauvegarder vos fichiers puis de stocker tout cela dans un fichier zip. Quand je dis fichiers, je parle de fichiers de stockage, tels que les téléchargements de documents ou les fichiers que vous générez avec votre application.

De plus, vous pouvez également déplacer cela vers AWS S3, ce qui est une chose intelligente à faire. Tout ce que vous avez à faire est (en supposant que vous ayez déjà un compte AWS, c'est d'aller créer un nouveau compartiment S3 avec de nouvelles autorisations. Ensuite, vous pouvez simplement suivre la documentation sur leur page Github.

Voici un aperçu rapide du fichier de configuration que vous pouvez modifier afin de recevoir des notifications via d'autres supports tels que Slack et Email.

'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'],
],
/*
* Ici, vous pouvez spécifier le notifiable à qui les notifications doivent être envoyées. Le défaut
* notifiable utilisera les variables spécifiées dans ce fichier de configuration.
*/
'notifiable' => \Spatie\Backup\Notifications\Notifiable::class,
'courrier' => [
'to' => ['[email protected]'],
],
'slack' => [
'webhook_url' => 'https://hooks.mou.com/services/ABMGGK7AB/B9PBCDSM8/kam02gzLrycaUBctgAdRv52M',
/*
* S'il est défini sur null, le canal par défaut du webhook sera utilisé.
*/
'canal' => nul,
],
],

Configurer l'automatisation

Enfin, tout cela n'aurait pas beaucoup de sens si vous décidiez de sauter la partie automatisation. Pour cela, vous souhaitez vous appuyer sur des tâches cron qui devraient déjà être activées sur votre hôte et pointer vers la commande de planification Laravel comme ceci :

* * * * * cd /chemin-vers-votre-projet && php artisan schedule:run >> /dev/null 2>&1

À partir d'ici, dans votre application/console/noyau.php, vous devez procéder comme suit si vous souhaitez l'automatiser à un moment donné (je le fais généralement lorsque la plupart de nos utilisateurs sont endormis) :

if (app('env') == 'production')
$schedule->command('backup:clean')->daily()->at('01:00');
$schedule->command('backup:run')->daily()->at('02:00');
Meilleures distributions Linux pour les jeux en 2021
Le système d'exploitation Linux a parcouru un long chemin depuis son apparence originale, simple et basée sur le serveur. Ce système d'exploitation s'...
Comment capturer et diffuser votre session de jeu sur Linux
Dans le passé, jouer à des jeux n'était considéré qu'un passe-temps, mais avec le temps, l'industrie du jeu a connu une croissance énorme en termes de...
Meilleurs jeux à jouer avec le suivi des mains
Oculus Quest a récemment introduit l'idée géniale du suivi manuel sans contrôleurs. Avec un nombre toujours croissant de jeux et d'activités qui exécu...