最新のkusanagi(1.5.1)で、最新のlaravel(5.8.10)が、そのままだと利用できない!
.envにDB接続情報を記述して、テーブルを作ろうとしたらエラー!
1 2 |
php artisan migrate:fresh 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`)) |
laravel5.8は、mariadb10.2.2以上(MySQLは5.7.7以上)が条件だけど、kusanagiのMariaDBは10.1.38か~。laravelのバージョンを下げるか…。
デフォがutf8mb4(絵文字サポート)になったのって、laravel5.4だから5.3以下じゃないとダメ!?
いやいや、その選択肢は無いでしょ。
しょうがないから、indexの長さを制限してエラー回避しよう。
https://readouble.com/laravel/5.8/ja/migrations.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; // DBスキーマ変更のためuse use Illuminate\Support\Facades\Schema; class AppServiceProvider extends ServiceProvider { public function register() { // } public function boot() { // laravel5.8からutf8(3byte)からutf8mb4(4byte)へ変更 // そのままだとエラーになるので、index制限を短めに指定する Schema::defaultStringLength(191); } } |
これで問題なくマイグレーション出来た!
kusanagiさんが、MariaDBを10.2.2以上に上げてくれるまで、これで対応だな。
1 2 3 |
kusanagi upgrade mariadb MariaDBは既にアップグレードされています。 完了しました。 |