laravel

Laravel Hvordan ta sikkerhetskopi av en database

Laravel Hvordan ta sikkerhetskopi av en database

Problem

Dessverre er det mange nye Laravel-utviklere som ikke innser dette før de setter koden sin i produksjon, og noe skjer slik at de mister dataene sine.

Laravel tilbyr ikke databasesikkerhetskopiering som en del av kjernefunksjonaliteten, slik at nye Laravel-utviklere ikke kommer til å jobbe med det mens de leser Laravel-artikler eller bygger et Laravel-program.

I dag blir det en stadig viktigere ting å lagre og bevare sikkerhetskopidataene dine i tilfelle du noen gang trenger å bruke dem.

Vanlige feil nye Laravel-utviklere gjør er å gå til phpmyadmin og prøve å kjøre denne eksporten manuelt. Selv om dette fremdeles fungerer, er det ikke den beste fremgangsmåten, for noen ganger vil du ikke være der for å ta sikkerhetskopi, og brukerne dine genererte allerede nye data.

Det du vil gjøre er å automatisere det.

Løsning

Det er mange måter du kan gjøre for å sikkerhetskopiere databasen din, men hvor mange mennesker gjør er å bruke denne pakken https: // github.com / spatie / laravel-backup . Selskapet bak er veldig pålitelig og kjent i bransjen.

For det første er pakken GRATIS, så du trenger ikke å betale noe.

På plussiden er installasjonen ganske enkel, og det jeg liker spesielt er at det ikke bare gjør databasesikkerhetskopien din, du har også muligheten til å sikkerhetskopiere filene dine og deretter lagre alt dette i en zip-fil. Når jeg sier filer, mener jeg lagringsfiler, for eksempel dokumentopplastinger eller filer du genererer med applikasjonen din.

I tillegg kan du også flytte det til AWS S3, som er en smart ting å gjøre. Alt du trenger å gjøre er (forutsatt at du allerede har en AWS-konto, er å gå og lage en ny S3-bøtte med nye tillatelser. Så kan du bare følge dokumentasjonen på Github-siden deres.

Her er en rask forhåndsvisning av konfigurasjonsfilen som du kan tilpasse, slik at du mottar varsler gjennom andre medier som Slack og 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'],
],
/ *
* Her kan du spesifisere det meldepliktig meldingen skal sendes til. Standaren
* notifiable vil bruke variablene som er spesifisert i denne konfigurasjonsfilen.
* /
'notifiable' => \ Spatie \ Backup \ Notifications \ Notifiable :: class,
'mail' => [
'til' => ['editor @ linuxhint.com '],
],
'slack' => [
'webhook_url' => 'https: // kroker.slapp.no / tjenester / ABMGGK7AB / B9PBCDSM8 / kam02gzLrycaUBctgAdRv52M ',
/ *
* Hvis dette er satt til null, brukes standardkanalen til webhooken.
* /
'kanal' => null,
],
],

Sett opp automatisering

Til slutt ville ikke alt dette være fornuftig hvis du bestemte deg for å hoppe over automatiseringsdelen. For dette vil du stole på cron-jobber som allerede skal være aktivert på verten din og peke på Laravel-tidsplankommandoen slik:

* * * * * cd / path-to-your-project && php artisan tidsplan: kjør >> / dev / null 2> & 1

Herfra, i appen / konsollen / kjernen.php-fil, bør du gjøre følgende hvis du vil automatisere den til en bestemt tid (jeg pleier å gjøre dette når de fleste av brukerne våre sover):

hvis (app ('env') == 'produksjon')
$ sched-> command ('backup: clean') -> daily () -> at ('01: 00 ');
$ sched-> kommando ('backup: run') -> daglig () -> kl ('02: 00 ');
Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...
5 beste arkadespill for Linux
I dag er datamaskiner seriøse maskiner som brukes til spill. Hvis du ikke kan få den nye høye poengsummen, vil du vite hva jeg mener. I dette innlegge...
Kamp for Wesnoth 1.1. 3.6 Utvikling utgitt
Kamp for Wesnoth 1.1. 3.6 utgitt i forrige måned, er den sjette utgivelsen i 1.1. 3.x-serien, og den leverer en rekke forbedringer, spesielt til bruke...