في
هذا الموضوع سنتناول كيفية عمل نسخ احتياطي تلقائي لقاعدة البيانات في تطبيقات
الويب المبنية بفريم وورك Laravel
وذلك
باستخدام spatie/laravel-backup
1- تثبيت
الحزمة باستخدام ال composer
composer
require spatie/laravel-backup
ستقوم
الحزمة تلقائيًا بتسجيل مزود الخدمة الخاص بها.
2-
لنشر ملف التهيئة على config
/ backup.php قم بتشغيل الأمر:
php
artisan vendor:publish
--provider="Spatie\Backup\BackupServiceProvider"
بعد
ذلك يتم عمل مجلد المحتويات الافتراضية لملف ال bacup.php داخل مجلد ال config
3-
عمل مجلد النسخ الاحتياطي:
بشكل
افتراضي، سيتم حفظ النسخة الاحتياطية في المجلد public / laravel-backup / في مشروع Laravel الخاص بك.
يفضل
عمل مجلد باسم النسخ الاحتياطية في filesystems.php وتحديد هذا الاسم في مفتاح القرص لملف
التهيئة backup.php.
4-
جدولة النسخ الإحتياطي
بعد الانتهاء من التثبيت الأساسي، يمكنك البدء في استخدام النسخ الاحتياطي:
backup:run, backup:clean, backup:list and backup:monitor-commands.
في
معظم الحالات، سترغب في جدولة هذه الأوامر حتى لا تضطر إلى تشغيل النسخ الاحتياطي
يدويًا.
أما
اذا احتجت لعمل نسخ احتياطي يدوياً يمكنك إستخدم الأمر backup:run
-
يمكن جدولة الأوامر في نواة وحدة التحكم في Laravel ، تمامًا مثل أي أمر آخر.
بإضافة
الامرين التاليين في ملف الKernel
// app/Console/Kernel.php
$schedule->command('backup:clean')->daily()->at('01:00');
$schedule->command('backup:run')->daily()->at('02:00');
المراقبة
إذا
تم تعطيل تطبيقك، فلن تتمكن من تشغيل المهام المجدولة بعد الآن. قد تنسَ أيضًا
إضافة وظيفة cron اللازمة
لتشغيل جدولة Laravel. في كلتا الحالتين ، قد تعتقد أنه يتم عمل نسخ
احتياطية بينما في الواقع لا يتم نسخ أي شيء احتياطيًا.
للتعرف
على مشكلات النسخ الاحتياطية الخاصة بك ، تأتي الحزمة مزودة بوظيفة المراقبة.
سيخبرك عندما تصبح النسخ الاحتياطية قديمة جدًا أو عندما تشغل مساحة تخزين كبيرة.
تفريق
قاعدة البيانات
يستخدم mysqldump لعمل نسخة احتياطية من قواعد
بيانات MySQL. تُستخدم pg_dump لتفريغ قواعد بيانات PostgreSQL. إذا لم يتم تثبيت هذه الثنائيات في موقع
افتراضي ، يمكنك إضافة مفتاح باسم dump.dump_binary_path في ملف تهيئة database.php الخاص بـ Laravel. قم فقط بملء المسار إلى الملف الثنائي. لا
تقم بتضمين اسم الثنائي نفسه.
إذا
استغرق تفريغ قاعدة البيانات وقتًا طويلاً ، فقد تتجاوز المهلة الافتراضية وهي 60
ثانية. يمكنك تعيين حد أعلى (أو أقل) من خلال توفير مفتاح تهيئة dump.timeout يحدد ، بالثواني ، المدة التي قد
يستغرقها الأمر.