Hi các bạn. Chắc ai đang dùng framework laravel 5.x đều gặp lỗi khi chạy php artisan migrate

[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


Từ laravel 5.x đã thay đổi ký tự mặc định, bây giờ sẽ luôn luôn mặc định sử dụng charset là utf8mb4 (hỗ trợ có thể lưu lại được các kí tự emojis).
Với charset Utf8mb4, giới hạn varchar chỉ còn là 191 thay vì 255 khi ta dùng utf8.

Fixed Specified key was too long.

Đơn giản bạn chỉ cần thêm đoạn code này vào file /app/Providers/AppServiceProvider.php

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

lưu lại và bạn có thể chạy lại lệnh artisan migrate bình thường.
Chúc các bạn thành công.
Cảm ơn các bạn đã ghé thăm blog của mình. Nơi mình chia sẻ và note lại những lỗi mà mình đã gặp phải.

0/5 (0 Reviews)

Thành Trung

Yêu công nghệ. Tốt nghiệp chuyên ngành Công Nghệ Thông Tin. Theo học PHP nhưng đang làm Front-end, Freelancer

Bình luận

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *