Sửa bảng với Migration Laravel 8

Sửa bảng với Migration Laravel 8

Trình duyệt của bạn không tương hỗ nghe audio .

Bài này chúng ta sẽ học các sửa bảng với Migration Laravel 8 cụ thể là cách thêm ,sửa các trường trong bảng với migration nhé.

Cách dùng Migration để sửa bảng (table) trong Laravel 8

Xét lại ví dụ trước chúng ta đã tạo được bảng news với các trường sau id, tentruyen,tacgia,chap bây giờ chúng ta muốn chỉnh sửa bảng này thì làm thế nào. Các bạn hãy xem ví dụ dưới để biết cách nhé!

Chúng ta cần tạo một Migration mới dành riêng cho việc sửa đổi bảng như sau: tạo file Migration edit_news_table.php bằng lệnh

php artisan 

make:migration edit_news_table --table=news

Lúc này file Migration 2021_01 _22_092354_edit_news_table. php đã được tạo bên trong thư mục / database / migrations / với nội dung sau :

{

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table(‘news’, function (Blueprint $table) {
            //
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table(‘news’, function (Blueprint $table) {
            //
        });
    }
}Ta thấy nội dung tương tự như như tạo file create_news_table. php, nhưng 2 function up ( ) và down ( ) đang là rỗng .

2.1 Thêm cột dữ liệu

Để thêm cột mới (VD như cột gioithieu) vào bảng news, ta điều chỉnh file edit_news_table.php vừa tạo như sau:

{

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table(‘news’, function (Blueprint $table) {
             $table->string(‘gioithieu’);
        });
    }
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table(‘news’, function (Blueprint $table) {
            //
        });
    }
}

Chạy lại lệnh php artisan migrate

php artisan migrate

hiển thị kết quả sau đây là thành công:

Kiểm tra lại bảng news trên phpMyAdmin tất cả chúng ta thấy một cột mới gioithieu đã được thêm vào

2.2 Thay đổi cột dữ liệu

Để biến hóa được tài liệu trên bảng ví dụ đổi khác tên cột, thứ nhất ta cần phải cài thêm thư viện Doctrine / dbal vào Laravel, nếu chưa có thì những bạn chạy dòng lệnh sau tại thư mục project laravel

composer require doctrine/dbal

Giả sử giờ đây tất cả chúng ta cần đổi khác tên cột gioithieu thành mota, và cần thêm một cột mới là nguyetphieu, ta thực thi biến hóa file edit_news_table. php như sau :

 public function up()
    {
        Schema::table('news', function (Blueprint $table) {
            $table->renameColumn('gioithieu', 'mota');
            $table->string('nguyetphieu');
        });
    }

Lúc này nếu bạn chạy

php artisan migrate 

thì sẽ nhận được thông tin ” Nothing to migrate ” nguyên do là là do bên trong table migrations đã sống sót tên migration

2021_01_22_092354_edit_news_table

Để xử lý yếu tố này, ta cần xóa dữ liệu 2021_01 _22_092354_edit_news_table này đi là đượcsau đó chạy lại lệnh

php artisan migration

Table news sẽ được update .

2.3 Xóa cột dữ liệu

Vào file edit_news_table. php sửa lại như sau

  public function up()
    {
        Schema::table('news', function (Blueprint $table) 

{

            $table->dropColumn('nguyetphieu');         });     }

Tương tự như trường hợp đổi khác cột, khi chạy lệnh php artisan migration nếu Open thông tin ” Nothing to migrate. “do đó ta cũng giải quyết và xử lý tựa như như trên :

Lời kết:

Vậy là chúng ta đã biết cách sử dụng Migration 8 để sửa bảng (table) trong Laravel rồi đấy, đơn giản phải không nào. Chúc các bạn học tốt!