在Laravel 5.4上使用php artisan make:auth迁移错误
[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter tabl e 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
我得到了这个错误尽管我已经有了(实际上因为我已经有了)
模式:defaultStringLength (191);在AppServiceProvider.php文件中。
原因是我试图在我的一个迁移中设置一个高于191的字符串值:
Schema::create('order_items', function (Blueprint $table) {
$table->primary(['order_id', 'product_id', 'attributes']);
$table->unsignedBigInteger('order_id');
$table->unsignedBigInteger('product_id');
$table->string('attributes', 1000); // This line right here
$table->timestamps();
});
删除1000或将其设置为191解决了我的问题。
对于不想更改AppServiceProvider.php的人。
(在我看来,仅仅为了迁移而更改AppServiceProvider.php是一个坏主意)
您可以将数据长度添加回database/migrations/下的迁移文件,如下所示:
create_users_table.php
$table->string('name',64);
$table->string('email',128)->unique();
create_password_resets_table.php
$table->string('email',128)->index();