عنوان مقاله :

بک آپ گیری از پروژه لاراول

گردآوری و تالیف : امیررضا سیستانه ای
تاریخ انتشار : 10 مرداد 1396
دسته بندی ها : لاراول

بک آپ گرفتن از پروژه و دیتابیس یکی از مسائل مهمیه که در هر پروژه باید در نظر گرفته بشه. 

ما در این مقاله نحوه ی نصب و کار کردن با پکیج محبوب laravel-backup رو یاد میگیریم.

مقدمه

این پکیج یک بک آپ از اپلیکیشن شما میگیره و یک فایل zip شامل تمام مسیرها و دیتابیس هایی که شما مشخص کردید تحویل میده. این بک آپ میتونه در هر فایل سیستمی که در لاراول پیکربندی شده ذخیره بشه. همچنین laravel-backup میتونه بک آپ های قبلی تون رو پاک کنه, میزان سلامتی فایل های بک آپ رو بررسی کنه و یک نمایش از تمام بک آپ ها به شما بده.

از ورژن های قدیمی PHP/Laravel استفاده می کنید ؟

اگر از ورژن قبل php 7 یا لاراول 5٫3 استفاده میکنید با استفاده از دستور زیر ورژن 3 این پکیج رو نصب کنید :

composer require "spatie/laravel-backup:^3.0.0"

و از داکیومنت ورژن 3 استفاده کنید.

نصب و راه اندازی

برای نصب پکیج با استفاده از کامپوزر از دستور زیر استفاده کنید.

composer require spatie/laravel-backup

همچنین در فایل config/app.php کد زیر رو اضافه کنید

// config/app.php

'providers' => [

    // ...

    Spatie\Backup\BackupServiceProvider::class,

];

برای منتشر کردن فایل پیکربندی در config/laravel-backup.php دستور زیر رو وارد کنید :

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

زمان بندی

بعد از گذروندن مراحل نصب شما میتونید با استفاده از دستورات زیر از پکیج استفاده کنید :

backup:run, backup:clean, backup:list and backup:monitor

اما اگر هربار نمیخواید بصورت دستی دستور backup:run رو وارد کنید باید از Scheduling استفاده کنید. برای اینکار در فایل app/Console/Kernel.php کدهای زیر رو وارد کنید تا بصورت خودکار در زمان مشخص شده بک آپ گیری انجام بشه :

// app/Console/Kernel.php


protected function schedule(Schedule $schedule)

{

   $schedule->command('backup:clean')->daily()->at('01:00');

   $schedule->command('backup:run')->daily()->at('02:00');

}

نکته : برای انجام زمان بندی لازمه قابلیت cron job رو در سیستم عامل موردنظر فعال کنید. (در مورد فعال سازی و کار کردن با Laravel Schedule یک مقاله جدا لازم هست)

دستورات بک آپ گیری

همینطور که گفتیم برای بگ آپ گیری از دستور زیر استفاده میشه

php artisan backup:run

برای بک آپ گیری از یک دیسک خاص

php artisan backup:run --only-to-disk=name-of-your-disk

برای اینکه فقط از دیتابیس بک آپ بگیرید

php artisan backup:run --only-db

برای اینکه فقط از فایل ها بک آپ بگیرید

php artisan backup:run --only-files

حذف بک آپ ها

همینطور که گفتیم برای حذف بک آپ ها از دستور زیر استفاده میشه 

php artisan backup:clean

برای اینکه مشخص کنید چه بک آپ هایی رو میخواید حذف کنید فایل پیکربندی رو تغییر بدین :

فایل config/laravel-backup.php

    'cleanup' => [

        /*

         * The strategy that will be used to cleanup old backups. The default strategy

         * will keep all backups for a certain amount of days. After that period only

         * a daily backup will be kept. After that period only weekly backups will

         * be kept and so on.

         *

         * No matter how you configure it the default strategy will never

         * deleted the newest backup.

         */

        'strategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,



        'defaultStrategy' => [



            /*

             * The number of days that all backups must be kept.

             */

            'keepAllBackupsForDays' => 7,



            /*

             * The number of days that all daily backups must be kept.

             */

            'keepDailyBackupsForDays' => 16,



            /*

             * The number of weeks of which one weekly backup must be kept.

             */

            'keepWeeklyBackupsForWeeks' => 8,



            /*

             * The number of months of which one monthly backup must be kept.

             */

            'keepMonthlyBackupsForMonths' => 4,



            /*

             * The number of years of which one yearly backup must be kept.

             */

            'keepYearlyBackupsForYears' => 2,



            /*

             * After cleaning up the backups remove the oldest backup until

             * this amount of megabytes has been reached.

             */

            'deleteOldestBackupsWhenUsingMoreMegabytesThan' => 5000,

        ],

    ],

مقالات پیشنهادی

بک آپ گیری از لاراول در dropbox

اگر دنبال یک راه ساده و رایگان برای گرفتن بک آپ از اپلیکیشن تون در dropbox می گردید, این آموزش به شما کمک می کنه تا به هدفتون برسید.

آپلود چندتایی فایلها بصورت Ajax در لاراول 5

آپلود فایل‌ یکی از مهم‌ترین عملیات ها در محیط وب هست. امروزه سایز فایل‌ها برای آپلود بسیار بزرگ هستند و نیاز به فرآیندی داریم که در پنهان عملیات آپلود...

تغییر نام لاراول Elixir به لاراول Mix

در این پست میخوام در مورد یکی از اخبار جدیدی که در رابطه با لاراول ارائه شده صحبت کنم . که شاید برای دوستداران لاراول جالب باشه . در اکتبر سال 2014 بو...

مقدمه‌ای بر تست پروژه لاراولی بوسیله Laravel Dusk

یکی از بزرگترین مشکلاتی که در PHPUnit وجود داشت این بود که تست نرم‌افزارهای برپایه JavaScript غیرممکن بود. با Dusk میتونید براحتی ویژگی‌های Client-sid...

دیدگاه های ارزشمند شما

برای ارسال نظر لازم است ابتدا وارد سایت شوید
میلاد هدایت پور | 4 ماه پیش

خیلی پکیج خوب و مورد نیازیه مرسی
برای زمان بندی بکاپ گیری باید cron job نصب باشه؟
لینکی برای اموزشش دارین؟

حسام موسوی | 4 ماه پیش

cron job معمولا در cpanel کاملا قابل دسترسه و اونجا باید تعریف بشه

امیررضا سیستانه ای | 4 ماه پیش

درمورد cron job و استفاده ازش در cpanel سعی میکنم حتما یک مقاله داشته باشم. ممنون از نظرتون