## Laravel 5.* 执行迁移文件报错:Specified key was too long error
命令行执行迁移文件时,报错 `Specified key was too long`,如果我们仔细检查错误会发现是唯一索引太长了,报错信息如下:
```
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long;
max key length is 767 bytes (SQL: alter table `users` add unique `users_email_uniq
ue`(`email`))
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long;
max key length is 767 bytes
```
我们当然可以通过修改迁移文件来修改字段的长度,也可以通过修改迁移文件来解决这个问题。
```
$table->string('email',30)->unique();
```
也可以使用更加通用的办法来完成。编辑 `AppServiceProvider.php` 文件的 `boot()` 方法。如下:
```
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(120);
}
```
相当于给予`varchar`默认的长度**120**。
修改数据库的字符集
如图,新版的Laravel 5.4 使用了 `utf8mb4` 和 `utf8mb4_unicode_ci` ,这个字符集支持 **emoji**
![](https://box.kancloud.cn/e59eca97b1a2f10b1901e3ad1556d360_365x71.png)
我们将他改成:
```
'charset' => 'utf8',
'collation' => 'utf8_general_ci',
```
> 建议在数据库迁移文件中使用第二个参数根据业务需求指定字段的长度,这样更加的切合实际和需求。
- 介绍
- Laravel5发送邮件使用Service隔离业务
- 如何使用Repository模式
- 如何使用Service模式
- 如何使用Presenter模式
- Laravel 5.* 执行迁移文件报错:Specified key was too long error
- EloquentORM关联关系
- EloquentORM关联关系之一对一
- EloquentORM关联关系之一对多
- EloquentORM关联关系之远层一对多
- EloquentORM关联关系之多对多
- EloquentORM关联关系之多态关联
- EloquentORM关联关系之多对多多态关联
- Laravel测试
- Laravel中涉及认证跳转地址的修改的地方
- Laravel中Collection的基本使用
- all
- avg
- chuck
- collapse
- combine
- contains
- containsStrict
- count
- diff
- diffAssoc
- diffKeys
- each
- every
- except
- filter
- first
- flatMap
- flatten
- flip
- forget
- forPage
- get
- groupBy
- has
- implode
- intersect
- intersectKey
- isEmpty
- isNotEmpty
- keyBy
- keys
- last
- map
- mapWithKeys
- max
- median
- merge
- min
- mode
- nth
- only
- partition
- pipe
- pluck
- pop
- prepend
- pull
- push
- put
- random
- reduce
- reject
- reverse
- search
- shift
- shuffle
- slice
- sort
- sortBy
- sortByDesc
- splice
- split
- sum
- take
- tap
- times
- toArray
- toJson
- transform
- union
- unique
- uniqueStrict
- values
- when
- where
- whereStrict
- whereIn
- whereInStrict
- whereNotIn
- whereNotInStrict
- zip
- Laravel中Collection的实际使用
- collection中sum求和
- collection格式化计算数据
- collection格式化计算数据计算github事件得分总和
- collection格式化markdown数据列表
- collection格式化计算两个数组的数据
- collection中reduce创建lookup数组
- TODO