Laravel框架数据迁移报错1071
迁移就像是数据库的版本控制器,让你的团队更容易修改和共享程序的数据库结构。
执行时出现了以下错误提示:Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
# 1. 参考官网手册
根据官方 Laravel 7.x 文档,可以很容易地解决这个问题。 链接地址:https://laravel.com/docs/7.x/migrations#creating-indexes
# 2. 修改框架文件
Laravel 默认使用 utf8mb4 字符集,其中包括支持在数据库中存储“emojis”。 如果您运行的 MySQL 版本早于 5.7.7 版本或 MariaDB 版本早于 10.2.2 版本,您可能需要手动配置迁移生成的默认字符串长度,以便 MySQL 为它们创建索引。 可以通过在 AppServiceProvider 中调用 Schema::defaultStringLength 方法来配置它:
use Illuminate\Support\Facades\Schema;
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191);
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
或者,您可以为您的数据库启用 innodb_large_prefix 选项。 有关如何正确启用此选项的说明,请参阅数据库的文档。
上次更新: 2023/09/05, 16:08:13