Migrations trong Laravel là một công cụ mạnh mẽ để quản lý cấu trúc cơ sở dữ liệu của ứng dụng. Chúng cho phép bạn dễ dàng tạo, sửa đổi và quản lý các bảng và cột trong cơ sở dữ liệu mà không cần phải viết các câu lệnh SQL phức tạp. Migrations được coi là một phần của hệ thống kiểm soát phiên bản cho cơ sở dữ liệu, cho phép bạn theo dõi và đồng bộ hóa các thay đổi trong cấu trúc cơ sở dữ liệu giữa các môi trường khác nhau.
Migrations là các tệp PHP được lưu trữ trong thư mục database/migrations
của ứng dụng Laravel. Mỗi migration chứa các phương thức để định nghĩa các hành động cần thực hiện trên cơ sở dữ liệu, bao gồm:
Để tạo một migration mới, bạn có thể sử dụng lệnh Artisan sau:
php artisan make:migration create_users_table
Lệnh này sẽ tạo một tệp migration mới trong thư mục database/migrations
. Tên của tệp sẽ bao gồm timestamp và tên của migration.
Trong tệp migration mới tạo, bạn sẽ thấy hai phương thức chính: up()
và down()
.
up()
: Chứa các lệnh để thực hiện thay đổi trên cơ sở dữ liệu, chẳng hạn như tạo bảng hoặc thêm cột.down()
: Chứa các lệnh để hoàn tác các thay đổi được thực hiện trong phương thức up()
. Đây là phần quan trọng để đảm bảo bạn có thể quay lại trạng thái trước đó của cơ sở dữ liệu nếu cần.Ví dụ về một migration đơn giản để tạo bảng users
:
use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; class CreateUsersTable extends Migration { public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('users'); } }
Sau khi bạn đã định nghĩa migration, bạn có thể chạy tất cả các migration chưa được chạy bằng lệnh:
php artisan migrate
Khi chạy lệnh này, Laravel sẽ kiểm tra các migration đã được thực hiện và thực hiện các migration mới.
Nếu bạn cần quay lại một migration (hoàn tác các thay đổi), bạn có thể sử dụng lệnh sau:
php artisan migrate:rollback
Lệnh này sẽ gọi phương thức down()
của migration cuối cùng mà bạn đã thực hiện.
Bạn có thể kiểm tra trạng thái của các migration bằng lệnh:
php artisan migrate:status
Lệnh này sẽ hiển thị danh sách tất cả các migration và cho biết những migration nào đã được thực hiện và những migration nào chưa.
down()
trong migrations.Migrations là một phần quan trọng trong Laravel, giúp quản lý và theo dõi cấu trúc cơ sở dữ liệu của ứng dụng một cách hiệu quả. Bằng cách sử dụng migrations, bạn có thể dễ dàng tạo, sửa đổi và hoàn tác các thay đổi trên cơ sở dữ liệu mà không cần phải viết các câu lệnh SQL phức tạp. Đây là một công cụ mạnh mẽ giúp tăng tính khả chuyển, quản lý phiên bản và dễ dàng chia sẻ giữa các lập trình viên trong quá trình phát triển ứng dụng.