Problema
Deja, daugelis naujų „Laravel“ kūrėjų to nesuvokia, kol nepateikia savo kodo gamyboje, ir kažkas atsitinka, kad jie prarastų savo duomenis.
„Laravel“ nesiūlo duomenų bazės atsarginės kopijos kaip savo pagrindinės funkcijos dalies, todėl naujieji „Laravel“ kūrėjai nesusitvarkys su tuo skaitydami „Laravel“ straipsnius ar kurdami „Laravel“ programą.
Šiandien tampa vis svarbiau išsaugoti ir išsaugoti atsargines duomenų kopijas tuo atveju, jei kada nors prireiks juos naudoti.
Dažniausios klaidos, kurias daro nauji „Laravel“ kūrėjai, yra eiti į „phpmyadmin“ ir pabandyti paleisti šį eksportą rankiniu būdu. Nors tai vis tiek veiks, tai nėra geriausia praktika, nes kartais nebūsi ten, kad padarytumėte atsarginę kopiją, o jūsų vartotojai jau sugeneravo naujus duomenis.
Tai, ką norite padaryti, yra tai automatizuoti.
Sprendimas
Yra daugybė būdų, kuriuos galite padaryti norėdami sukurti atsarginę duomenų bazės kopiją, tačiau kiek žmonių naudoja šį paketą https: // github.com / spatie / laravel-backup . Už jos esanti įmonė yra labai patikima ir žinoma pramonėje.
Visų pirma, paketas yra NEMOKAMAS, todėl nereikia nieko mokėti.
Be to, diegimas yra gana paprastas ir man ypač patinka tai, kad jis ne tik daro atsarginę jūsų duomenų bazės kopiją, bet ir galite sukurti atsarginę failų kopiją ir visą tai išsaugoti ZIP faile. Sakydamas failus turiu omenyje saugojimo failus, tokius kaip dokumentų įkėlimai arba failai, kuriuos sugeneruojate kartu su savo programa.
Be to, taip pat galite perkelti tai į „AWS S3“, kuris yra protingas dalykas. Viskas, ką jums reikia padaryti (darant prielaidą, kad jau turite AWS paskyrą, turite eiti ir sukurti naują S3 segmentą su naujais leidimais. Tada galite tiesiog vadovautis dokumentais, pateiktais jų „Github“ puslapyje.
Čia pateikiama greita konfigūracijos failo peržiūra, kurią galite pakoreguoti, kad gautumėte pranešimus per kitas laikmenas, tokias kaip „Slack“ ir „Email“.
„pranešimai“ => [„pranešimai“ => [
\ 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'],
],
/ *
* Čia galite nurodyti, apie kurį pranešimą reikia pranešti. Numatytasis
* notifiable naudos kintamuosius, nurodytus šiame konfigūracijos faile.
* /
'notifiable' => \ Spatie \ Backup \ Notifications \ Notifiable :: klasė,
'paštas' => [
'to' => ['redaktorius @ linuxhint.com '],
],
'atlaidumas' => [
'webhook_url' => 'https: // kabliukai.palaidumas.lt / paslaugos / ABMGGK7AB / B9PBCDSM8 / kam02gzLrycaUBctgAdRv52M “,
/ *
* Jei tai nustatyta kaip nulinė, bus naudojamas numatytasis „webhook“ kanalas.
* /
'kanalas' => null,
],
],
Nustatykite automatiką
Galiausiai, visa tai neturėtų daug prasmės, jei nuspręstumėte praleisti automatikos dalį. Tam norite pasikliauti „cron“ užduotimis, kurios jau turėtų būti įgalintos pagrindiniame kompiuteryje, ir nurodykite komandą „Laravel“ tvarkaraštis taip:
* * * * * cd / path-to-your-project && php amatininkų tvarkaraštis: paleisti >> / dev / null 2> & 1Iš čia, savo programoje / konsolėje / branduolyje.php failą turėtumėte atlikti šiuos veiksmus, jei norite jį automatizuoti tam tikru metu (aš tai dažniausiai darau, kai dauguma mūsų vartotojų miega):
jei (programa ('env') == 'gamyba')$ tvarkaraštis-> komanda ('atsarginė kopija: švari') -> kasdien () -> at ('01: 00 ');
$ tvarkaraštis-> komanda ('atsarginė kopija: vykdoma') -> kasdien () -> ne ('02: 00 ');