当前位置: 首页 > 后端技术 > PHP

Laravel5.-常见问题(七)文件迁移phpartisanmigrate

时间:2023-03-29 22:46:52 PHP

我们已经下载了Laravel框架,如果我们没有删除框架自带的默认迁移文件2014_10_12_000000_create_users_table.php和2014_10_12_100000_create_password_resets_table.php,我们就执行直接命令:phpartisanmigrate报如下错误:InConnection.phpline647:SQLSTATE[42000]:Syntaxerrororaccessviolation:1071Specifiedkeywastoolong;最大密钥长度为1000(SQL:altertableusersadduniqueusers_email_unique(email))在Connection.php第449行:SQLSTATE[42000]:语法错误或访问冲突:1071指定的密钥太长;maxkeylengthis1000bytes如下图:注:出现以上错误是因为数据迁移文件中没有string方法指定长度导致的解决办法方法一(推荐):创建所有字段时指定长度使用Laravel框架默认迁移文件中的string方法,如下图所示:再次执行:phpartisanmigrate命令,在执行数据库之前删除其中的所有表。方法二:在appProvidersAppServiceProvider.php文件中的boot方法中添加:Schema::defaultStringLength(250);如下图所示:注意:需要引入Schema类的命名空间:useIlluminate\Support\Facades\Schema;模式::默认字符串长度(250);250表示varchar默认长度为250。再次执行:phpartisanmigrate命令,执行前删除数据库中所有表即可。建议:在使用迁移文件建表或者修改字段类型使用字符串方式时,最好明确指定长度,这样后期维护打开迁移文件时可以清楚的知道是哪个字段的长度.例如:$table->string('name',50);更多技术资料请关注:gzitcast