Laravel 16 : Quản lý bảng bằng Migration trong laravel

0
1694

Migrations trong Laravel là gì?

-Khi làm việc với database, có rất nhiều các công việc cần làm đầu tiên như tạo cấu trúc bảng, cột, index, khóa chính, khóa ngoại, tạo dữ liệu test…, các công việc này thường tốn rất nhiều thời gian và cũng gây không ít cản trở lớn đặc biệt khi làm việc theo nhóm. Nhưng với Laravel mọi thứ trở lên đơn giản hơn với các công cụ như Laravel Migrate, Laravel Seeding và các lớp được xây dựng sẵn như Schema, Factory. Cơ sở dữ liệu cũng giống như mã nguồn cần được quản lý phiên bản và Laravel đã đưa ra một cách xử lý hết sức tinh tế cho công việc thật sự khó khăn này.

Chúng ta sẽ cùng nhau tìm hiểu xem cách thức Laravel xử lý các công việc này như thế nào?

-Điều kiện để sử dụng Migations:

  • Phải có kết nối với database .
  • Migrations muốn sử dụng được thì phải nằm trong thư mục App\database\migrations

Tạo migrations

Để tạo một Laravel Migration chúng ta sử dụng câu lệnh artisan:

cách tạo migration thông thường:

  • php artisan make:migration TenMigrate --create=TableName  : Tạo migrations thêm  bảng. – nên dùng cách này
  • php artisan make:migration TenMigrate --table=TableName  : Tạo migrations chỉnh sửa bảng (Thêm cột,xoá cột).

Khi đó một file migration sẽ được tạo ra trong thư mục database/migrations, trong tên các file migration có chứa thông tin thời gian tạo ra giúp cho Laravel sắp xếp và xác định được các file mirgration tại các thời điểm cần thiết.

Chúng ta lên đặt tên sao cho khi nhìn vào 1 migration phải biết được nó dùng để tạo bảng tên gì : cấu trúc đặt tên: create_tên bảng_table.

ví dụ ta muốn dùng migration để tạo bảng tên là comment ta gõ lệnh artisan như sau:

Cấu trúc của Migrations

File migration chứa Migration class với hai phương thức up() và down(), phương thức up() sử dụng để thêm các bảng, cột hoặc tạo một index cho cột nào đó trong CSDL. Phương thức down() sử dụng để làm những việc ngược lại với phương thức up().

túm lại:

-Hàm up trong Migrations có tác dụng thực thi. khi gõ lệnh migrate (xuống dưới là biết).

-Hàm down trong Migrations có tác dụng thực thi . khi gõ lệnh rollback (xuống dưới là biết).

Chúng ta cùng xem ví dụ sau:

Thực thi các Migrations

php artisan migrate  chạy migration
php artisan migrate:resest  resest lại migration
php artisan migrate:refesh  chạy lại migration
php artisan migrate:status  xem trạng thái của migration
php artisan migrate:install  cài đặt migration

Để chạy tất cả các migration có trong database/migraions sử dụng lệnh artisan như sau:

Các migration file có thể ảnh hưởng đến cấu trúc database hiện tại, do đó khi chạy lệnh trên có thể nó sẽ thông báo xác nhận chạy hay không, để ép buộc chạy migration mà không hiển thị thông báo sử dụng thêm tùy chọn –force

Trong quá trình migration có thể bạn muốn quay trở lại cấu trúc CSDL trước lúc thực thi các migration, hoàn toàn có thể được bằng cách sử dụng rollback và reset. Rollback thì cần cung cấp thêm tùy chọn –step là rollback lại bao nhiêu lần , không có —-step mặc định là 1 , còn reset sẽ đưa cấu trúc CSDL về thời điểm chưa có bất kỳ một migration nào.

Ngoài ra, Laravel còn cung cấp migrate:refresh, đúng như tên gọi của nó, lệnh ra rollback toàn bộ các migrate và sau đó chạy lại lệnh migrate, tức là tương đương hai lệnh sau chạy lần lượt:

Với migration này sau khi chạy câu lệnh :php artisan migrate sẽ tạo cho chúng ta bảng users sau:

Chúc mọi người học tập tốt

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây