
# Database Migrations
Migrations là một tính năng mạnh mẽ của Laravel giúp bạn quản lý cấu trúc cơ sở dữ liệu của ứng dụng một cách dễ dàng. Chúng cho phép bạn định nghĩa và thay đổi bảng trong cơ sở dữ liệu bằng mã PHP thay vì phải sử dụng SQL thuần.
Tạo Migration
Bạn có thể tạo một migration mới bằng cách sử dụng Artisan command make:migration
:
php artisan make:migration create_users_table
Lệnh này sẽ tạo một file migration trong thư mục database/migrations
. File migration có tên dựa trên timestamp hiện tại và mô tả mục đích của migration.
Cấu Trúc Migration
Một file migration điển hình gồm hai phương thức: up
và down
.
- up: Phương thức này dùng để định nghĩa các thay đổi bạn muốn thực hiện lên cơ sở dữ liệu (tạo bảng, thêm cột, thay đổi cột, ...).
- down: Phương thức này dùng để đảo ngược các thay đổi đã thực hiện trong phương thức
up
.
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$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');
}
}
Chạy Migration
Sau khi tạo migration, bạn có thể chạy nó bằng lệnh sau:
php artisan migrate
Lệnh này sẽ thực hiện tất cả các file migration chưa được chạy trước đó.
Rollback Migration
Nếu bạn muốn quay lại migration cuối cùng đã chạy, bạn có thể sử dụng lệnh:
php artisan migrate:rollback
Để rollback nhiều migration, bạn có thể thêm tùy chọn --step
:
php artisan migrate:rollback --step=3
Reset và Refresh Migration
-
Reset: Để rollback tất cả các migration:
php artisan migrate:reset
- Refresh: Để rollback tất cả các migration và sau đó chạy lại tất cả các migration từ đầu:
php artisan migrate:refresh
Thêm Cột vào Bảng
Nếu bạn muốn thêm cột vào một bảng hiện có, bạn cần tạo một migration mới:
php artisan make:migration add_profile_to_users_table --table=users
Trong file migration, bạn có thể thêm cột như sau:
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('profile')->nullable();
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('profile');
});
}
Xóa Bảng hoặc Cột
Để xóa bảng hoặc cột, bạn cũng tạo một migration mới và định nghĩa hành động trong phương thức up
và down
.
php artisan make:migration drop_users_table
Trong file migration, bạn có thể xóa bảng như sau:
public function up()
{
Schema::dropIfExists('users');
}
public function down()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
Tóm Tắt
Migrations là một phần quan trọng trong Laravel, giúp bạn quản lý cơ sở dữ liệu của ứng dụng một cách dễ dàng và hiệu quả. Chúng cho phép bạn định nghĩa các thay đổi đối với cấu trúc cơ sở dữ liệu bằng mã PHP, giúp việc theo dõi và quản lý các thay đổi trở nên dễ dàng hơn. Sử dụng migrations cũng giúp bạn duy trì tính nhất quán và khả năng sao lưu dữ liệu trong quá trình phát triển ứng dụng.
Danh mục
Bài viết liên quan

Database: Pagination
Author: | ADMIN |
---|

Database: Seeding
Author: | ADMIN |
---|
Bài viết khác

Blade Basics
Author: | ADMIN |
---|

9 Mẹo Hữu Ích Khi Sử Dụng Blade Trong Laravel
Author: | ADMIN |
---|

Hiển thị giá trị trong Blade
Author: | ADMIN |
---|