Laravel 5.4 đã chuyển database character set mặc định là utf8mb4 để có thể hỗ trợ lưu trữ emojis. Nếu các dự án mới của bạn đang chạy MySQL v5.7.7 hoặc cao hơn thì bạn không cần làm gì nữa.

Ngược lại nếu dùng MariaDB hoặc các phiên bản cũ hơn của MySQL thì khi gõ php artisan migrate bạn sẽ thấy dòng lỗi như sau:

[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))

[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Đây là do tên của index bị giới hạn (được Laravel tạo tự động) để sửa lỗi này, bạn mở tập tin app\Provider\AppServiceProvider.php và thêm vào phương thức boot dòng sau để mở rộng giới hạn của tên index:

Bây giờ mọi thứ đã bình thường, hãy gõ lại xem nào.

SHARE
Previous articleRepository Pattern trong Laravel
Mình rất yêu thích việc lập trình web, đam mê việc nghiên cứu, tạo ra các sản phẩm có ích cho bản thân và cộng đồng. Ngoài việc coding ra thì mình còn thích vẽ và âm nhạc, được giao lưu chia sẻ cùng với mọi người. Hiện tại mình đang sống và làm việc tại Hồ Chí Minh, Việt Nam.

LEAVE A REPLY

Please enter your comment!
Please enter your name here