確認環境:
laravel 5.4
ロリポップ スタンダードプラン
php >= 5.6.4
mysql
laravel 5.4 で migrate したら、以下のエラーが出ました。
対処方法をメモしておきます。
エラー内容
[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_unique`(`email`)) [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
対処方法
app/Providers/AppServiceProvider.php
を以下のように編集します。
6、13
行目のコードを追加します。
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Schema; //追加 class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() {// Schema::defaultStringLength(191); //追加 } /** * Register any application services. * * @return void */ public function register() { // } }
この後、
php artisan migrate:refresh
します。
ロリポップでは、
/usr/local/php7.1/bin/php artisan migrate:refresh
します。