Bab*_*ust 6 php mysql database laravel lumen
我使用Lumen 5.6和mysql。当我输入“ php artisan migration”时,发生以下错误:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
oo long; max key length is 767 bytes (SQL: alter table `users` add unique `
users_email_unique`(`email`))
Run Code Online (Sandbox Code Playgroud)
我将以下代码放入AppServiceProvider中的“启动”方法中
Schema::defaultStringLength(191);
Run Code Online (Sandbox Code Playgroud)
但是我没有取得任何成功。
小智 9
您只需要再走一步
转到bootstrap文件夹上的app.php并取消注释或修改此行
// $app->register(App\Providers\AppServiceProvider::class);
Run Code Online (Sandbox Code Playgroud)
这个代码
$app->register(App\Providers\AppServiceProvider::class);
Run Code Online (Sandbox Code Playgroud)
祝你有美好的一天
你需要做几件事。我也遇到了这个问题并通过以下两个步骤修复了它
转到 bootstrap 目录中的 app.php 并取消注释或修改此行。
// $app->register(App\Providers\AppServiceProvider::class);
Run Code Online (Sandbox Code Playgroud)现在你需要boot()
在AppServiceProvider
文件中定义函数
public function boot()
{
Schema::defaultStringLength(191);
}
Run Code Online (Sandbox Code Playgroud)那么你就可以开始了!
use Illuminate\Support\Facades\Schema; //AppServiceProvider.php
public function boot(){
Schema::defaultStringLength(191);
}
//rollback your migration or delete all table from database then migrate again.
Run Code Online (Sandbox Code Playgroud)
转到文件中的配置,database.php
然后编辑
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
Run Code Online (Sandbox Code Playgroud)
至
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
Run Code Online (Sandbox Code Playgroud)