laravel

Laravel Sådan sikkerhedskopieres en database

Laravel Sådan sikkerhedskopieres en database

Problem

Desværre er mange nye Laravel-udviklere ikke klar over dette, før de sætter deres kode i produktion, og der sker noget, så de mister deres data.

Laravel tilbyder ikke en sikkerhedskopi af en database som en del af deres kernefunktionalitet, så nye Laravel-udviklere ikke kommer til at arbejde med det, mens de læser Laravel-artikler eller bygger en Laravel-applikation.

I dag bliver det en stadig vigtigere ting at gemme og bevare dine backupdata, hvis du nogensinde har brug for det.

Almindelige fejl, som nye Laravel-udviklere gør, er at gå til phpmyadmin og prøve at køre denne eksport manuelt. Selvom dette stadig fungerer, er det ikke den bedste praksis, for nogle gange vil du ikke være der for at tage backup, og dine brugere genererede allerede nye data.

Hvad du vil gøre er at automatisere det.

Opløsning

Der er mange måder, du kan gøre for at sikkerhedskopiere din database, men hvor mange mennesker gør er at bruge denne pakke https: // github.com / spatie / laravel-backup . Virksomheden bag det er meget pålidelig og kendt i branchen.

Først og fremmest er pakken GRATIS, så du behøver ikke betale noget.

På plussiden er installationen ret enkel, og hvad jeg især kan lide er, at det ikke kun tager backup af din database, du har også mulighed for at sikkerhedskopiere dine filer og derefter gemme alt dette i en zip-fil. Når jeg siger filer, mener jeg opbevaringsfiler, såsom dokumentuploads eller filer, du genererer med din applikation.

Derudover kan du også flytte det til AWS S3, hvilket er en smart ting at gøre. Alt du skal gøre er (forudsat at du allerede har en AWS-konto, er at gå og oprette en ny S3-bucket med nye tilladelser. Så kan du bare følge dokumentationen på deres Github-side.

Her er en hurtig forhåndsvisning af konfigurationsfilen, som du kan tilpasse, så du modtager underretninger via andre medier såsom Slack og Email.

'notifikationer' => [
'notifikationer' => [
\ Spatie \ Backup \ Notifikationer \ Notifikationer \ BackupHasFailed :: class => ['mail', 'slack'],
\ Spatie \ Backup \ Notifikationer \ Notifikationer \ UnhealthyBackupWasFound :: class => ['mail', 'slack'],
\ Spatie \ Backup \ Notifikationer \ Notifikationer \ CleanupHasFailed :: class => ['mail', 'slack'],
\ Spatie \ Backup \ Notifikationer \ Notifikationer \ BackupWasSuccessful :: class => ['mail', 'slack'],
\ Spatie \ Backup \ Notifikationer \ Notifikationer \ HealthyBackupWasFound :: class => ['mail', 'slack'],
\ Spatie \ Backup \ Notifikationer \ Notifikationer \ CleanupWasSuccessful :: class => ['mail', 'slack'],
],
/ *
* Her kan du specificere det anmeldelsespligtige, som meddelelserne skal sendes til. Standardindstillingen
* notifiable bruger de variabler, der er angivet i denne konfigurationsfil.
* /
'notifiable' => \ Spatie \ Backup \ Notifications \ Notifiable :: klasse,
'mail' => [
'til' => ['editor @ linuxhint.com '],
],
'slack' => [
'webhook_url' => 'https: // kroge.slap.com / services / ABMGGK7AB / B9PBCDSM8 / kam02gzLrycaUBctgAdRv52M ',
/ *
* Hvis dette er indstillet til null, bruges webhookens standardkanal.
* /
'kanal' => null,
],
],

Konfigurer automatisering

Endelig ville alt dette ikke give meget mening, hvis du besluttede at springe over automatiseringsdelen. Til dette vil du stole på cron-job, der allerede skal være aktiveret på din vært og pege på Laravel-tidsplankommandoen som denne:

* * * * * cd / sti til dit projekt && php håndværksplan: kør >> / dev / null 2> & 1

Herfra i din app / konsol / kerne.php-fil skal du gøre følgende, hvis du vil automatisere den på et bestemt tidspunkt (jeg gør det normalt, når de fleste af vores brugere sover):

hvis (app ('env') == 'produktion')
$ skema-> kommando ('backup: ren') -> dagligt () -> kl ('01: 00 ');
$ skema-> kommando ('backup: run') -> dagligt () -> kl ('02: 00 ');
5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...
Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...
Sådan installeres League Of Legends på Ubuntu 14.04
Hvis du er fan af League of Legends, er dette en mulighed for dig at prøvekøre League of Legends. Bemærk, at LOL understøttes på PlayOnLinux, hvis du ...