Danh sách Tutorial

Tổng quan + Hướng dẫn sử dụng Laravel Migration


Trên Laravel có 2 công cụ được sử dụng để thao tác với database là Laravel Migration và Laravel Seed. Hôm nay, vinasupport.com sẽ giới thiệu và hướng dẫn các bạn sử dụng Laravel Migration.

Laravel Migration là gì?

Laravel Migration được hiểu là một công cụ quản lý version của database trên Laravel. Nó cho phép bạn định nghĩa và chia sẻ các thiết kế database. Bạn có thể tạo bảng, thêm cột, sửa xóa database tùy ý. Khi có 1 sự thay đổi vê CSDL bạn chỉ cần pull code về và chạy lệnh migrate, lập tức CSDL của bạn sẽ được đồng bộ thiết kế giữa các môi trường với nhau. Và khi nó có 1 vấn đề xảy ra khi migrate database thì nó cũng có cơ chế hỗ trợ các bạn rollback.

Hướng dẫn sử dụng Laravel Migration

1. Tạo một thiết kế bảng CSDL

Để tạo một file thiết kế bảng CSDL bạn sử dụng command

php artisan make:migration create_pages_table

Kết quả nó sẽ tạo ra 1 file migration ở thư mục databases/migrations/

Nội dung file mặc định sẽ là:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('pages', function (Blueprint $table) {
            $table->id();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('pages');
    }
};

Bây giờ các bạn hãy sửa lại nó như thiết kế database mà các bạn mong muốn. VD:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('pages', function (Blueprint $table) {
            $table->unsignedBigInteger('page_id', true)->unique();
            $table->string('page_title', 255);
            $table->string('page_name', 180)->unique();
            $table->unsignedInteger('page_views')->default(0);
            $table->string('thumbnail', 1000);
            $table->longText('page_content');
            $table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
            $table->timestamp('updated_at')->nullable();
            $table->softDeletes('deleted_at', 0);
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('pages');
    }
};

2. Chạy migrate Database sử dụng Laravel Migration

Sau khi thiết kế CSDL dữ liệu bằng mã code php như trên, tiếp theo bạn cần là kết nối CSDL trong file .env của Laravel

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=webtools
DB_USERNAME=root
DB_PASSWORD=

Sau đó chạy lệnh migrate database

php artisan migrate

Nếu quá trình migrate thành công nó sẽ tạo trong CSDL của chúng ta 1 bảng như thiết kế ban đầu.

Bạn có thể kiếm tra trạng thái các bảng đã migrate bằng lệnh sau:

php artisan migrate:status

3. Rollback lại Laravel Migrate

Bạn có thể rollback lại trạng thái trước khi migrate bằng lệnh migrate rollback

php artisan migrate:rollback

Trường hợp bạn muốn rollback lại toàn bộ database thì

php artisan migrate:reset

4. Xóa toàn bộ Laravel Migration

Chú ý lệnh dưới đây sẽ xóa toàn bộ bảng được tạo ra bằng Laravel Migrate và các file migration, nên hãy chắc chắn trước là bạn muốn thực hiện điều này.

php artisan migrate:fresh
php artisan migrate:fresh --seed

Với Laravel Migration, bạn có thể làm chủ hoàn toàn thiết kế, thay đổi database bằng các dòng code PHP.

Nguồn: vinasupport.com

 

SHARE

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web