Sprache:

Suche

Tägliche MYSQL-Backups in Laravel automatisieren

  • Teilen:
Tägliche MYSQL-Backups in Laravel automatisieren

Einführung

Datenbanken sind für jede Anwendung unverzichtbar, da sie eine strukturierte Möglichkeit bieten, Daten zu speichern, zu verwalten und darauf zuzugreifen. Dadurch können Anwendungen Informationen effizient organisieren und abrufen, was für ihre Funktionalität und Leistung entscheidend ist. Datenbanken sorgen außerdem für Datenkonsistenz, Zuverlässigkeit und Sicherheit, so dass Anwendungen reibungslos funktionieren und die Daten korrekt und sicher bleiben.

Lesen Sie auch: Wie die Datenbank das Webdesign beeinflusst

Die Häufigkeit von Datenbanksicherungen hängt von Faktoren wie der Menge der verarbeiteten Daten, der Wichtigkeit der Daten und der Häufigkeit von Änderungen an den Daten ab. Im Allgemeinen wird empfohlen, Datenbanken regelmäßig zu sichern, wobei einige Anwendungen tägliche Sicherungen erfordern, während andere vielleicht nur wöchentliche oder monatliche Sicherungen benötigen. Die Häufigkeit der Sicherungen sollte sich nach dem Umfang des Datenverlusts richten, der toleriert werden kann, sowie nach den potenziellen Auswirkungen eines Datenverlusts auf das Unternehmen oder die Organisation. Es empfiehlt sich auch, die Backups regelmäßig zu testen, um sicherzustellen, dass sie im Falle einer Katastrophe erfolgreich wiederhergestellt werden können.

Verdienen Sie $200 Credits mit Digital Ocean

Automatisieren Sie MySQL-Backups mit DigitalOcean Spaces

Bevor Sie die folgenden Schritte ausführen, stellen Sie bitte sicher, dass Sie alle Speichertreiber in filesystems.php richtig konfiguriert haben. In diesem Artikel werden wir lernen, wie wir unsere MySQL-Datenbank mit Laravel auf Digital Ocean Spaces automatisieren können.

Das Wichtigste zuerst: Installieren Sie das Laravel Backup-Paket von Spatie, indem Sie den folgenden Befehl in Ihrem Projekt-Root ausführen.

composer require spatie/laravel-backup

Sie können die Konfigurationsdatei nun mit folgendem Befehl veröffentlichen:

php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"

Bearbeiten Sie die Konfigurationsdatei config/backup.php um das Sicherungslaufwerk und die Details der Datenbankverbindung anzugeben.

'disks' => [
  's3',
],

Stellen Sie außerdem sicher, dass die Standarddatenbank mysql ist.

'databases' => [
   'mysql',
],

Lesen Sie auch: Bereitstellen einer Laravel-App mit Envoy

Testlauf

Jetzt können wir testen, ob die Sicherung unserer Mysql-Datenbank funktioniert, indem wir den folgenden Befehl ausführen

php artisan backup:run --only-db --only-to-disk=s3 

Bei Erfolg sollte die Ausgabe angezeigt werden:

Starting backup...
Dumping database twt…
Determining files to backup...
Zipping 1 files and directories...
Created zip containing 1 files and directories. Size is 15.04 MB
Copying zip to disk named s3...
Successfully copied zip to disk named s3.
Backup completed!

Zum Planer hinzufügen

Sobald dies geschehen ist, können Sie das Programm mit Hilfe des Schedulers in der von Ihnen gewünschten Häufigkeit ausführen. Fügen Sie den folgenden Code in Console\Kernel.php. In unserem Fall machen wir täglich Backups.

Lesen Sie auch: Laravel Livewire Kommentare

$schedule->command("backup:run --only-db --only-to-disk=s3")->daily();

Wenn Sie den Cron-Eintrag noch nicht in Ihren Server eingefügt haben, können Sie dies nachholen:

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

Für Notifikationen

Lesen Sie auch: API-Design und -Entwicklung

Optional können Sie eine E-Mail-Adresse für Benachrichtigungen über erfolgreiche oder fehlgeschlagene Sicherungen hinzufügen, indem Sie die folgende Zeile in die Datei config/backup.php datei:

'notifications' => [
     'mail' => [
         'to' => '[email protected]',
     ],
],

Fazit

Das war's, Ihre MySQL-Datenbank wird täglich auf Ihren DO-Spaces gesichert. Bitte beachten Sie, dass dasselbe mit Amazon S3 oder einem anderen Cloud-Speicher gemacht werden kann, Sie müssen nur die Treiberschlüssel und Konfigurationen ändern.

Related: 

- Automatisieren der Code-Formatierung mit Laravel Pint 
- Laravel-Tagging implementieren  
- Laravel Verantwortliche
- Absicherung der Laravel-App vor der Bereitstellung

TWT Staff

TWT Staff

Writes about Programming, tech news, discuss programming topics for web developers (and Web designers), and talks about SEO tools and techniques