如this person,this person和this person所示,为了避免
SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长;最大密钥长度为767字节
您必须修改Laravel项目的AppServiceProvider.php
:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema; //add this
class AppServiceProvider extends ServiceProvider {
public function boot() {
Schema::defaultStringLength(191); //and this
}
public function register() { }
}
但是这种方法的缺点是我使用的VARCHAR限制为191个字符,我希望有一个比这更长的字段。我该怎么办?
感谢您的帮助。
答案 0 :(得分:2)
实际上,在您的迁移文件中,您可以定义大小。实施例
$table->string('field_name', 200);
答案 1 :(得分:1)