在cmd中提交“ php artisan migration:fresh”后出现错误。
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
SQLSTATE [42000]:语法错误或访问冲突:1071指定的密钥太长;默认值为0。最大密钥长度为767字节(SQL:alter table users
添加唯一的users_email_unique
(email
))
答案 0 :(得分:0)
通过此链接:https://laravel-news.com/laravel-5-4-key-too-long-error
对于那些运行MariaDB或更旧版本的MySQL的用户,您可以点击此 尝试运行迁移时出错
如要解决此问题的《迁移指南》所述, 编辑您的AppServiceProvider.php文件,并在启动方法中设置一个 默认字符串长度:
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
此后,一切都应正常进行。
答案 1 :(得分:0)
编辑:仅供参考...此软件包的 v4 在迁移中添加了一些唯一索引,如果您使用的是 MySQL 8.0,则需要 125 而不是 191。 (MariaDB 不需要这些)。