Reputation: 25
I'm using Laravel and when I try to run php artisan make:migrate
it shows this error:
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 uniqueusers_email_unique
(at /Users/soksan/Desktop/TestLaravel/multiUsers/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664
660| // If an exception occurs when attempting to run a query, we'll format the error
661| // message to include the bindings with SQL, which will make this exception a
662| // lot more helpful to the developer instead of just the database's errors.
663| catch (Exception $e) {
> 664| throw new QueryException(
665| $query, $this->prepareBindings($bindings), $e
666| );
667| }
668|
Exception trace:
1
PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes")
/Users/soksan/Desktop/TestLaravel/multiUsers/vendor/laravel/framework/src/Illuminate/Database/Connection.php:4582
PDOStatement::execute()
/Users/soksan/Desktop/TestLaravel/multiUsers/vendor/laravel/framework/src/Illuminate/Database/Connection.php:458
Please use the argument -v
to see more details.
Upvotes: 1
Views: 7943
Reputation: 11
Find the file config/database.php and change the charset and collation from utf8mb4 to utf8
'charset' => 'utf8', 'collation' => 'utf8_unicode_ci',
Upvotes: 1
Reputation: 1852
Go to your laravel project and inside that project open App\Providers\AppServiceProvider
class and change the boot method and add new schema show in the image.
Add this line at the top
use Illuminate\Support\Facades\Schema;
Replace this method
public function boot()
{
Schema::defaultStringLength(191);
}
Upvotes: 4
Reputation: 5603
Go in the App\Providers\AppServiceProvider
class and change the boot method to look like this
public function boot()
{
Schema::defaultStringLength(191);
}
Upvotes: 7