Masalah
Sayangnya, banyak pengembang Laravel baru tidak menyadari hal ini sampai mereka memasukkan kode mereka ke dalam produksi, dan sesuatu terjadi sehingga mereka kehilangan data.
Laravel tidak menawarkan cadangan basis data sebagai bagian dari fungsionalitas inti mereka sehingga pengembang Laravel baru tidak dapat bekerja dengan itu saat membaca artikel Laravel atau membangun aplikasi Laravel.
Saat ini, menyimpan dan melestarikan data cadangan Anda menjadi hal yang semakin penting jika sewaktu-waktu Anda perlu menggunakannya.
Kesalahan umum yang dilakukan pengembang Laravel baru adalah membuka phpmyadmin dan mencoba menjalankan ekspor ini secara manual. Meskipun ini akan tetap berfungsi, ini bukan praktik terbaik karena terkadang Anda tidak akan berada di sana untuk membuat cadangan, dan pengguna Anda telah membuat data baru.
Yang ingin Anda lakukan adalah mengotomatiskan itu.
Larutan
Ada banyak cara yang dapat Anda lakukan untuk membuat cadangan database Anda, tetapi berapa banyak orang yang menggunakan paket ini https://github.com/spatie/laravel-backup . Perusahaan di belakangnya sangat andal dan dikenal di industri ini.
Pertama-tama, paket ini GRATIS, jadi Anda tidak perlu membayar apa pun.
Di sisi positifnya, instalasinya cukup sederhana dan yang saya suka khususnya adalah tidak hanya melakukan backup database Anda, Anda juga memiliki pilihan untuk membuat cadangan file Anda dan kemudian menyimpan semua itu dalam file zip. Ketika saya mengatakan file, maksud saya file penyimpanan, seperti unggahan dokumen atau file yang Anda buat dengan aplikasi Anda.
Selain itu, Anda juga dapat memindahkannya ke AWS S3 yang merupakan hal yang cerdas untuk dilakukan. Yang perlu Anda lakukan adalah (dengan asumsi Anda sudah memiliki akun AWS, adalah pergi dan membuat ember S3 baru dengan izin baru. Kemudian Anda bisa mengikuti dokumentasi di halaman Github mereka.
Berikut adalah pratinjau cepat dari file konfigurasi yang dapat Anda atur sehingga Anda menerima pemberitahuan melalui media lain seperti Slack dan Email.
'pemberitahuan' => ['pemberitahuan' => [
\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'],
],
/*
* Di sini Anda dapat menentukan notifikasi yang harus dikirimi notifikasi. Standarnya
* yang dapat diberitahukan akan menggunakan variabel yang ditentukan dalam file konfigurasi ini.
*/
'notifiable' => \Spatie\Backup\Notifications\Notifiable::class,
'surat' => [
'ke' => ['[email protected]'],
],
'kendur' => [
'webhook_url' => 'https://hooks.kendur.com/services/ABMGGK7AB/B9PBCDSM8/kam02gzLrycaUBctgAdRv52M',
/*
* Jika ini disetel ke nol, saluran default webhook akan digunakan.
*/
'saluran' => nol,
],
],
Siapkan otomatisasi
Akhirnya, semua ini tidak masuk akal jika Anda memutuskan untuk melewatkan bagian otomatisasi. Untuk ini, Anda ingin mengandalkan pekerjaan cron yang seharusnya sudah diaktifkan di host Anda dan arahkan ke perintah jadwal Laravel seperti ini:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1Dari sini, di aplikasi/Konsol/Kernel Anda.php Anda harus melakukan hal berikut jika Anda ingin mengotomatiskannya pada waktu tertentu (saya biasanya melakukan ini ketika sebagian besar pengguna kami tertidur):
if (aplikasi('env') == 'produksi')$schedule->command('backup:clean')->daily()->at('01:00');
$schedule->command('backup:run')->daily()->at('02:00');