在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
对于这个错误,我找到了两个解决方案
选项1:
打开database/migrations文件夹下的user和password_reset表
只需要改变邮件的长度:
$table->string('email',191)->unique();
选项2:
打开app/Providers/AppServiceProvider.php文件,在boot()方法中设置一个默认字符串长度:
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(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();