algolia search

Tìm thấy x bài viết trong xms.

Lỗi Laravel: 1071 - Specified key was too long; max key length is 767 bytes


Lỗi Laravel: 1071 - Specified key was too long; max key length is 767 bytes

Lỗi này xảy ra khi dùng lệnh php artisan migrate

Nguyên nhân là những cột được string được đánh index với kiểu mã db (utf8mb4) sẽ không được vượt quá 191 ký tự.

Trong file migration database\migrations\2017_04_12_052246_create_abcxyz_table.php có dòng $table->string('column'); nên đổi thành $table->string('column', 255);

Trong project_name\app\Providers\AppServiceProvider.php function boot() thêm đoạn code này vào:

Update 2017-06-11: khai báo class use Illuminate\Support\Facades\Schema; ở đầu file nếu k sẽ bị báo lỗi nhé (Thanks Minh Hiếu Hồ)

Schema::defaultStringLength(191); // mặc định là 255

Mình áp dụng cách này ok, hi vọng bạn áp dụng thành công khi gặp lỗi này 😄

Update 2017-09-08

Với cách trên thì toàn bộ các field varchar không liên quan sẽ bị giảm số lượng kí tự xuống còn 191 và đều đó làm bạn không hài lòng hãy làm theo cách dưới đây.

Trong thư mục database/migrations kiểm tra các file tạo bảng. Các trường string mà có index hoặc unique thì thêm tham số thứ 2 là 191 vào là ổn.

// File database\migrations\2014_10_12_000000_create_users_table.php
$table->string('email')->unique();
// Thành
$table->string('email', 191)->unique();

// File database\migrations\2014_10_12_100000_create_password_resets_table.php
$table->string('email')->index();
// Thành
$table->string('email', 191)->index();

Đánh giá bài viết

Thích thì like
Lỗi Laravel: 1071 - Specified key was too long; max key length is 767 bytes
5/5 1 votes

Bình luận

Hiển thị bình luận Facebook