laravel

Laravel Hur man säkerhetskopierar en databas

Laravel Hur man säkerhetskopierar en databas

Problem

Tyvärr är det många nya Laravel-utvecklare som inte förstår detta förrän de sätter sin kod i produktion och något händer så att de förlorar sina data.

Laravel erbjuder inte säkerhetskopiering av databaser som en del av deras kärnfunktionalitet så nya Laravel-utvecklare får inte arbeta med det när de läser Laravel-artiklar eller bygger en Laravel-applikation.

Idag blir det en allt viktigare sak att lagra och bevara dina reservdata om du skulle behöva använda den.

Vanliga misstag som nya Laravel-utvecklare gör är att gå till phpmyadmin och försöka köra exporten manuellt. Även om detta fortfarande kommer att fungera är det inte den bästa metoden, för ibland kommer du inte att vara där för att säkerhetskopiera och dina användare genererade redan nya data.

Vad du vill göra är att automatisera det.

Lösning

Det finns många sätt du kan göra för att säkerhetskopiera din databas, men hur många människor gör är att använda detta paket https: // github.com / spatie / laravel-backup . Företaget bakom det är mycket pålitligt och känt i branschen.

Först och främst är paketet GRATIS, så du behöver inte betala någonting.

På plussidan är installationen ganska enkel och det som jag gillar särskilt är att det inte bara gör din databasbackup, du har också möjlighet att säkerhetskopiera dina filer och sedan lagra allt detta i en zip-fil. När jag säger filer menar jag lagringsfiler, till exempel dokumentöverföringar eller filer som du genererar med din applikation.

Dessutom kan du också flytta det till AWS S3, vilket är en smart sak att göra. Allt du behöver göra är (förutsatt att du redan har ett AWS-konto, är att gå och skapa en ny S3-hink med nya behörigheter. Sedan kan du bara följa dokumentationen på deras Github-sida.

Här är en snabb förhandsgranskning av konfigurationsfilen som du kan justera så att du får aviseringar via andra medier som Slack och Email.

'aviseringar' => [
'aviseringar' => [
\ Spatie \ Backup \ Notifieringar \ Meddelanden \ BackupHasFailed :: class => ['mail', 'slack'],
\ Spatie \ Backup \ Meddelanden \ Meddelanden \ UnhealthyBackupWasFound :: class => ['mail', 'slack'],
\ Spatie \ Backup \ Notifieringar \ Meddelanden \ CleanupHasFailed :: class => ['mail', 'slack'],
\ Spatie \ Backup \ Notifieringar \ Meddelanden \ BackupWasSuccessful :: class => ['mail', 'slack'],
\ Spatie \ Backup \ Notifieringar \ Meddelanden \ HealthyBackupWasFound :: class => ['mail', 'slack'],
\ Spatie \ Backup \ Notifieringar \ Meddelanden \ CleanupWasSuccessful :: class => ['mail', 'slack'],
],
/ *
* Här kan du ange det anmälningspliktiga meddelandet ska skickas till. Standarden
* notifiable kommer att använda variablerna som anges i denna konfigurationsfil.
* /
'notifiable' => \ Spatie \ Backup \ Notifications \ Notifiable :: class,
'mail' => [
'till' => ['editor @ linuxhint.com '],
],
'slack' => [
'webhook_url' => 'https: // krokar.slak.com / tjänster / ABMGGK7AB / B9PBCDSM8 / kam02gzLrycaUBctgAdRv52M ',
/ *
* Om detta är inställt på null kommer webhookens standardkanal att användas.
* /
'channel' => null,
],
],

Ställ in automatisering

Slutligen skulle allt detta inte vara mycket meningsfullt om du bestämde dig för att hoppa över automatiseringsdelen. För detta vill du förlita dig på cron-jobb som redan ska vara aktiverade på din värd och pekare till Laravel schema-kommandot så här:

* * * * * cd / sökväg till ditt projekt && php hantverksschema: kör >> / dev / null 2> & 1

Härifrån i din app / konsol / kärna.php-fil bör du göra följande om du vill automatisera den vid en viss tidpunkt (jag brukar göra det när de flesta av våra användare sover):

if (app ('env') == 'produktion')
$ schema-> kommando ('backup: clean') -> daglig () -> vid ('01: 00 ');
$ schema-> kommando ('backup: run') -> daily () -> at ('02: 00 ');
Portar med öppen källkod för kommersiella spelmotorer
Gratis, öppen källkod och plattformsmekaniska rekreationer kan användas för att spela gamla såväl som några av de ganska senaste speltitlarna. I den h...
Bästa kommandoradsspel för Linux
Kommandoraden är inte bara din största allierade när du använder Linux, det kan också vara källan till underhållning eftersom du kan använda den för a...
Bästa Gamepad Mapping Apps för Linux
Om du gillar att spela spel på Linux med en gamepad istället för ett typiskt tangentbord och musinmatningssystem, finns det några användbara appar för...