laravel

Laravel Hoe maak je een back-up van een database

Laravel Hoe maak je een back-up van een database

Probleem

Helaas realiseren veel nieuwe Laravel-ontwikkelaars dit niet totdat ze hun code in productie hebben genomen, en er gebeurt iets waardoor ze hun gegevens verliezen.

Laravel biedt geen databaseback-up als onderdeel van hun kernfunctionaliteit, dus nieuwe Laravel-ontwikkelaars gaan daar niet mee aan de slag tijdens het lezen van Laravel-artikelen of het bouwen van een Laravel-applicatie.

Tegenwoordig wordt het steeds belangrijker om uw back-upgegevens op te slaan en te bewaren voor het geval u ze ooit nodig heeft.

Veelvoorkomende fouten die nieuwe Laravel-ontwikkelaars maken, is om naar phpmyadmin te gaan en deze export handmatig uit te voeren. Hoewel dit nog steeds werkt, is dit niet de beste methode, omdat u er soms niet bent om de back-up te maken en uw gebruikers al nieuwe gegevens hebben gegenereerd.

Wat u wilt doen, is dat automatiseren.

Oplossing

Er zijn veel manieren waarop u een back-up van uw database kunt maken, maar hoeveel mensen gebruiken dit pakket https://github.com/spatie/laravel-backup . Het bedrijf erachter is zeer betrouwbaar en bekend in de branche.

Allereerst is het pakket GRATIS, dus je hoeft niets te betalen.

Aan de positieve kant, de installatie is vrij eenvoudig en wat ik vooral leuk vind, is dat het niet alleen je databaseback-up maakt, je hebt ook een optie om een ​​back-up van je bestanden te maken en dat vervolgens allemaal op te slaan in een zip-bestand. Als ik bestanden zeg, bedoel ik opslagbestanden, zoals de documentuploads of bestanden die u genereert met uw toepassing.

Bovendien kun je dat ook naar AWS S3 verplaatsen, wat slim is om te doen. Het enige dat u hoeft te doen is (ervan uitgaande dat u al een AWS-account heeft, een nieuwe S3-bucket met nieuwe machtigingen te gaan maken. Dan kun je gewoon de documentatie op hun Github-pagina volgen.

Hier is een snel voorbeeld van het configuratiebestand dat u kunt aanpassen, zodat u meldingen ontvangt via andere media zoals Slack en e-mail.

'meldingen' => [
'meldingen' => [
\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'],
],
/*
* Hier kunt u de meldingsplichtige opgeven waarnaar de meldingen moeten worden verzonden. De standaard
* notifiable zal de variabelen gebruiken die in dit configuratiebestand zijn gespecificeerd.
*/
'notifiable' => \Spatie\Backup\Notifications\Notifiable::class,
'mail' => [
'naar' => ['[email protected]'],
],
'slap' => [
'webhook_url' => 'https://hooks.slap.com/services/ABMGGK7AB/B9PBCDSM8/kam02gzLrycaUBctgAdRv52M',
/*
* Als dit is ingesteld op null, wordt het standaardkanaal van de webhook gebruikt.
*/
'kanaal' => null,
],
],

Automatisering instellen

Ten slotte zou dit allemaal niet veel zin hebben als je zou besluiten om het automatiseringsgedeelte over te slaan. Hiervoor wilt u vertrouwen op cron-taken die al op uw host moeten zijn ingeschakeld en verwijzen naar het Laravel-schema-commando als volgt:

* * * * * cd /pad-naar-uw-project && php artisan schema:run >> /dev/null 2>&1

Vanaf hier, in je app/Console/Kernel.php-bestand moet je het volgende doen als je het op een bepaald moment wilt automatiseren (ik doe dit meestal wanneer de meeste van onze gebruikers slapen):

if (app('env') == 'productie')
$schedule->command('backup:clean')->daily()->at('01:00');
$schedule->command('backup:run')->daily()->at('02:00');
5 beste arcade-spellen voor Linux
Tegenwoordig zijn computers serieuze machines die worden gebruikt om te gamen. Als je de nieuwe hoge score niet kunt halen, weet je wat ik bedoel. In ...
Strijd om Wesnoth 1.13.6 Ontwikkeling vrijgegeven
Strijd om Wesnoth 1.13.6 die vorige maand werd uitgebracht, is de zesde ontwikkelingsrelease in de 1.13.x-serie en het levert een aantal verbeteringen...
Hoe League Of Legends op Ubuntu 14 te installeren.04
Als je fan bent van League of Legends, dan is dit een kans voor jou om League of Legends te testen. Merk op dat LOL wordt ondersteund op PlayOnLinux a...