Cách cắt ngắn và sau đó sắp xếp tất cả các bảng Laravel

Tram Ho

1.What is Laravel Seeding and Laravel Migration ?

Laravel Seeding là một class chứa code để tạo ra các dummy data (dữ liệu mẫu) cho database trong quá trình xây dựng ứng dụng

Laravel Migration là một chức năng giống như một control database có tác dụng quản lý cũng như lưu trữ lại cấu trúc của database giúp cho việc sửa đổi database trở lên dễ dàng hơn.

2.Trouble

Trong quá trình phát triển ứng dụng thì việc migrationseeder là hầu như anh em nào cũng trải qua, ví dụ như chúng ta chạy câu lệnh dưới:

Command Line này xóa tất cả các bảng và thực hiện lại tất cả Migration , tiếp đến sẽ seeder lại dữ liệu dummy của Database.

Nhưng có 1 vấn đề xảy ra là khi xóa các table là các bản ghi cũ có thể vẫn còn hoặc bạn không thể xóa chúng đúng cách do các ràng buộc về khóa ngoại. (foreign key constraints)

Nếu Project của bạn hơn 20 table thì làm sao để xử lý chúng ?

3.Solutions

Để xử lý vấn đề trên thì mình sử dụng package sau :

Đó là một thư viện phải có nếu bạn muốn thay đổi lại định nghĩa table. Sau khi install thì chúng ta tiến hành theo các bước sau :

  • Tạo 1 Seeder

  • Overwrite code vào file vừa tạo

  • Register nó với DatabaseSeederclass.

  • Execute Command

Database seeding completed successfully.

Hy vọng với cách này có thể giúp anh em giải quyết được vấn đề truncate nhiều table nhưng bị ràng buộc bởi foreign key constraints !

Thân ái chào tậm biệt, quyết thắng !

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo