Bài viết Câu hỏi About RongvangIT
profile Pic
1
0

Đăng ngày:

 

Sửa ngày:

91 Lượt xem

Hướng dẫn Sao Lưu Cơ Sở Dữ Liệu Tự Động Trong Laravel

Laravel

Xin chào,

Trong ví dụ này, bạn sẽ học cách sao lưu cơ sở dữ liệu Laravel. Tôi muốn hướng dẫn bạn cách xuất cơ sở dữ liệu Laravel thành tệp SQL. Hãy thảo luận về cách sao lưu cơ sở dữ liệu trong Laravel. Chúng ta sẽ xem xét ví dụ về cách đặt lịch sao lưu cơ sở dữ liệu tự động trong ứng dụng Laravel phiên bản 6, 7, 8, 9 và 10.

Đôi khi chúng ta làm việc trên các trang web lớn với dữ liệu quan trọng. Vì vậy, chúng ta thường cần sao lưu cơ sở dữ liệu hàng ngày, hàng tuần hoặc hàng tháng. Do đó, chúng ta cần sử dụng lập lịch cron để sao lưu cơ sở dữ liệu. Dưới đây, tôi sẽ hướng dẫn bạn từng bước để tạo sao lưu cơ sở dữ liệu tự động trong Laravel.

Trong ví dụ này, chúng ta sẽ tạo một lệnh database:backup và lập lịch để chạy lệnh này hàng ngày. Lệnh này sẽ sao lưu cơ sở dữ liệu và đặt nó vào thư mục lưu trữ.

Hãy theo dõi vài bước và đặt sao lưu cơ sở dữ liệu tự động hàng ngày bằng Laravel.

Bước 1: Cài Đặt Laravel

Trong bước này, nếu bạn chưa thiết lập ứng dụng Laravel, bạn cần tạo một ứng dụng Laravel mới. Chạy lệnh sau để nhận ứng dụng Laravel mới:

composer create-project laravel/laravel blog

Bước 2: Tạo Lệnh

Trong bước này, chúng ta sẽ tạo lệnh console DatabaseBackUp bằng lệnh artisan của Laravel. Chạy lệnh sau:

php artisan make:command DatabaseBackUp

Sau đó, sẽ được tạo một tệp DatabaseBackUp.php trong thư mục console. Hãy cập nhật tệp đó với mã cập nhật hàng ngày.

app/Console/Commands/DatabaseBackUp.php

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Carbon\Carbon;

class DatabaseBackUp extends Command
{
    // ... (Những phần mã khác)

    /**
     * Execute the console command.
     *
     * @return int
     */
    public function handle()
    {
        $filename = "backup-" . Carbon::now()->format('Y-m-d') . ".gz";

        $command = "mysqldump --user=" . env('DB_USERNAME') ." --password=" . env('DB_PASSWORD') . " --host=" . env('DB_HOST') . " " . env('DB_DATABASE') . "  | gzip > " . storage_path() . "/app/backup/" . $filename;

        $returnVar = NULL;
        $output  = NULL;

        exec($command, $output, $returnVar);
    }
}

Bước 3: Tạo Thư Mục Sao Lưu

Trong bước này, chúng ta cần tạo thư mục “backup” trong thư mục lưu trữ của bạn. Bạn phải tạo “backup” tại đường dẫn sau:

storage/app/backup

Đảm bảo bạn cấp quyền để đặt tệp sao lưu.

Bước 4: Lập Lịch chạy lệnh

Bây giờ, trong bước này, chúng ta cần lập lịch cho lệnh đã tạo. Hãy cập nhật tệp kernel như sau:

app/Console/Kernel.php

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    // ... (Những phần mã khác)

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->command('database:backup')->daily();
    }

    // ... (Những phần mã khác)
}

Bạn cũng có thể kiểm tra bằng cách chạy lệnh sau để nhận sao lưu cơ sở dữ liệu với lệnh này:

php artisan database:backup

Nó sẽ tạo một tệp sao lưu trong thư mục backup. Bạn có thể kiểm tra ở đó.

Thiết Lập Trên Máy Chủ:

Bây giờ, chúng ta đã sẵn sàng cài đặt cron trên máy chủ của chúng ta.

Cuối cùng, bạn có thể quản lý lệnh này trên công việc lập lịch, bạn cần thêm một mục duy nhất vào tệp crontab của máy chủ của bạn:

Chạy lệnh sau:

crontab -e

Bạn có thể thêm dòng sau vào tệp crontab của bạn. Bạn cần thay đổi đường dẫn thư mục.

* * * * * php /path/to/artisan schedule:run 1>> /dev/null

HOẶC

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

Hy vọng nó sẽ giúp ích cho bạn…

Bài viết cùng chuyên đề [ Laravel Tutorial ]

Bình luận

Bài viết chưa có bình luận. Hãy trở thành người bình luận đầu tiên!
Sign up for free and join this conversation.
Sign Up
If you already have a RongvangIT account Login
Danh sách thư mục
Bắt đầu ngay với RồngVàngIT - nền tảng chia sẻ kiến thức lập trình tuyệt vời cho kỹ sư Việt Nam!

Hãy đăng nhập để sử dụng hàng loạt các chức năng tuyệt vời của RồngVàngIT !

  1. 1. Bạn sẽ nhận được các bài viết phù hợp bằng chức năng theo dõi tag và người dùng.
  2. 2. Bạn có thể đọc lại các thông tin hữu ích bằng chức năng lưu trữ nội dung.
  3. 3. Chia sẻ kiến thức, đặt câu hỏi và ghi lại quá trình trưởng thành của mình cùng RồngVàngIT !
Tạo tài khoản Đăng nhập
profile Pic