+3

Migration trong trong Laravel

1. Migration.

  • Migration có thể được hiểu như một phiên bản database của bạn tại một thời điểm nào đó vậy.
  • Nó giúp cho việc chia sẻ lược đồ database của bạn khi làm việc nhóm trở nên dễ dàng hơn.
  • Chỉ cần chạy migration là bạn có thể sinh ra một lược đồ giống như bạn đã định nghĩa.
  • Và tất nhiên là bạn cũng có thể sửa được các cột trong database rồi.

2 Tạo migration.

  • Để tạo ra một migration trong laravel thì bạn chỉ cần chạy lệnh sau trong terminal:
php artisan make:migration ten_migration --create=table_name
//hoặc
php artisan make:migration ten_migration --table=table_name
  • Kết quả sau khi chạy lệnh là bạn nhận được một file migration ở trong thư mục database/migrations
  • Về phần --create hay --table là để chỉ ra tên của bảng và việc migration có tạo bảng mới hay không.
  • Mỗi file migration được đặt tên bao gồm timestamp + tên để xác định thứ tự migartion với nhau.

3 File migration.

<?php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
};
  • Trong file này có 2 funtion là updown.
  • Về cơ bản thì function up sẽ chạy khi bạn thực thi câu lệnh php artisan migrate còn function down sẽ được chạy khi bạn thực thi câu lệnh php artisan migrate:rollback.
  • Tất nhiên là khi function up được thực thi thì nó sẽ sinh ra một bảng uers trong database của bạn còn function down sẽ xóa bảng đó đi.

4 Chạy migration

  • Như ở trên mình có nói thì để thực thi các file migration thi bạn chỉ cần chạy lệnh:
php artisan migrate
  • Và để quay trở lại trạng thái trước đó thì chạy lệnh:
php artisan migrate:rollback
  • Ngoài ra bạn cũng có thể xác định số bước khôi phục bằng lựa chọn --step .
php artisan migrate:rollback --step=5
  • Laravel cũng cung cấp cho bạn một cách để bạn không cần phải chạy lại migrate mỗi khi rollback đó là
php artisan migrate:reset

5. Schema

  • Bạn có thể hiểu Schema dùng để tạo, sửa, xóa,.. những thứ liên quan đến table trong database.
//tạo bảng
Schema::create('users', function (Blueprint $table) {}
//đổi tên bảng
Schema::rename('post', 'posts')
//xóa bảng
Schema::drop('users');
Schema::dropIfExists('users');
  • Bạn cũng có thể kiểm tra xem bảng hoặc cột đó có tồn tại hay không bằng cách
// kiểm tra bảng tồn tại
if (Schema::hasTable('users')) {
    //
}
// kiểm tra cột tồn tại
if (Schema::hasColumn('users', 'email')) {
    //
}
  • Tạo cột:
Schema::create('users', function (Blueprint $table) {
    $table->type('ten_cot');   //type ở đây là chỉ các kiểu mà cột đó cần
    $table->type('ten_cot');
}
  • Bạn có thể tham khảo các kiểu dữ liệu ở đây: tại đây

6. Foreign Key Constraints

  • Để tạo các rằng buộc cho các bảng, chúng ta có thể sử dụng cú pháp sau để rằng buộc cho 2 bảng:
Schema::table('posts', function ($table) {
    $table->integer('user_id')->unsigned();

    $table->foreign('user_id')->references('id')->on('users');
});

Kết luận

  • Trên đây là những điều cơ bản về migration mình muốn giới thiệu tới các bạn. Mong rằng nó sẽ giúp được các bạn.
  • Phần sau mình sẽ giới thiệu cho các bạn về models trong Laravel.

All rights reserved

Bình luận

Đang tải thêm bình luận...
Avatar
+3
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí