Laravel 8 关于 MySQL 和 MariaDB 的索引长度
Laravel 默认使用 utf8mb4 编码,它支持在数据库中储存 emojis 。如果你是在版本低于 5.7.7 的 MySQL 或者版本低于 10.2.2 的 MariaDB 上创建索引,那你就需要手动配置数据库迁移的默认字符串长度。即在 AppServiceProvider
中调用 Schema::defaultStringLength
方法来配置它:
use Illuminate\Support\Facades\Schema;
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191);
}
当然,你也可以选择开启数据库的 innodb_large_prefix
选项。至于如何正确开启,请自行查阅数据库文档。