كيفية عمل نسخ تلقائي لقاعدة البيانات في Laravel

في هذا الموضوع سنتناول كيفية عمل نسخ احتياطي تلقائي لقاعدة البيانات في تطبيقات الويب المبنية بفريم وورك 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 يحدد ، بالثواني ، المدة التي قد يستغرقها الأمر.

 

Press ESC to close