laravel

Laravel Cum se face o copie de rezervă a unei baze de date

Laravel Cum se face o copie de rezervă a unei baze de date

Problemă

Din păcate, mulți dezvoltatori Laravel noi nu își dau seama de acest lucru până când nu își pun codul în producție și se întâmplă ceva, astfel încât își pierd datele.

Laravel nu oferă o copie de rezervă a bazei de date ca parte a funcționalității lor de bază, astfel încât noii dezvoltatori Laravel să nu lucreze cu asta în timp ce citesc articole Laravel sau construiesc o aplicație Laravel.

Astăzi, devine un lucru din ce în ce mai important să stochezi și să păstrezi datele de rezervă în cazul în care trebuie să le folosești vreodată.

Greșelile obișnuite pe care le fac noii dezvoltatori Laravel este să meargă la phpmyadmin și să încerce să execute acest export manual. Deși acest lucru va funcționa în continuare, nu este cea mai bună practică, deoarece uneori nu veți fi acolo pentru a face copie de rezervă, iar utilizatorii dvs. au generat deja date noi.

Ceea ce doriți să faceți este să automatizați acest lucru.

Soluţie

Există multe modalități prin care puteți face backupul bazei de date, dar câți oameni folosesc acest pachet https: // github.com / spatie / laravel-backup . Compania din spatele acesteia este foarte fiabilă și cunoscută în industrie.

În primul rând, pachetul este GRATUIT, deci nu trebuie să plătiți nimic.

În plus, instalarea este destul de simplă și ceea ce îmi place în special este că nu numai că face backupul bazei de date, aveți și o opțiune de a face copii de rezervă ale fișierelor și apoi de a le stoca într-un fișier zip. Când spun fișiere, mă refer la fișiere de stocare, cum ar fi încărcările de documente sau fișierele pe care le generați cu aplicația dvs.

În plus, puteți trece și la AWS S3, ceea ce este un lucru inteligent de făcut. Tot ce trebuie să faceți este (presupunând că aveți deja un cont AWS, este să mergeți și să creați o nouă bucket S3 cu permisiuni noi. Apoi, puteți urmări documentația de pe pagina lor Github.

Iată o previzualizare rapidă a fișierului de configurare pe care îl puteți modifica pentru a primi notificări prin alte medii, cum ar fi Slack și Email.

'notificări' => [
'notificări' => [
\ 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'],
],
/ *
* Aici puteți specifica notificarea către care ar trebui trimise notificările. Implicit
* notifiable va utiliza variabilele specificate în acest fișier de configurare.
* /
'notifiable' => \ Spatie \ Backup \ Notifications \ Notifiable :: class,
'mail' => [
'to' => ['editor @ linuxhint.com '],
],
'slack' => [
'webhook_url' => 'https: // hooks.slăbiciune.com / services / ABMGGK7AB / B9PBCDSM8 / kam02gzLrycaUBctgAdRv52M ',
/ *
* Dacă acest lucru este setat la nul, va fi utilizat canalul implicit al webhook-ului.
* /
'canal' => nul,
],
],

Configurați automatizarea

În cele din urmă, toate acestea nu ar avea prea mult sens dacă ați decide să ignorați partea de automatizare. Pentru aceasta, doriți să vă bazați pe joburile cron care ar trebui să fie deja activate pe gazda dvs. și să indicați comanda Laravel schedul astfel:

* * * * * cd / path-to-your-project && php artisan schedule: run >> / dev / null 2> & 1

De aici, în aplicația / Consola / Kernel.fișier php ar trebui să faceți următoarele dacă doriți să îl automatizați la un anumit moment (de obicei fac asta când majoritatea utilizatorilor noștri dorm):

if (app ('env') == 'producție')
$ schedul-> command ('backup: clean') -> daily () -> at ('01: 00 ');
$ schedul-> command ('backup: run') -> daily () -> at ('02: 00 ');
Cum să capturați și să transmiteți în flux sesiunea de jocuri pe Linux
În trecut, jocurile erau considerate doar un hobby, dar cu timpul industria jocurilor a cunoscut o creștere imensă în ceea ce privește tehnologia și n...
Cele mai bune jocuri pentru a juca cu urmărirea manuală
Oculus Quest a introdus recent marea idee de urmărire manuală fără controlere. Cu un număr din ce în ce mai mare de jocuri și activități care execută ...
Cum se afișează suprapunerea OSD în aplicații și jocuri Linux pe ecran complet
Jucarea jocurilor pe ecran complet sau utilizarea aplicațiilor în modul ecran complet fără distragere vă poate elimina din informațiile relevante ale ...