laravel5.5で、照合順序をutf8mb4_unicode_ci→utf8_general_ciに変更する方法

laravel5.5で、照合順序をutf8mb4_unicode_ci→utf8_general_ciに変更する方法

データベースの照合順序について(utf8_unicode_ciは、なかなかにクレイジーな感じの照合順序)

1, phpmyadminで、データベース→データベースをクリック→サーバ接続の照合順序をutf8_general_ciに変更する

2, プロジェクトルート直下にある.env に文字コードと照合順序の項目を追加する
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=接続するデータベース名
DB_USERNAME= ログイン名
DB_PASSWORD=パスワード
DB_CHARSE=utf8 ← なぜか無いので自分で追加する
DB_COLLATION=utf8_general_ci ← なぜか無いので自分で追加する

3, config/database.phpも修正する
‘mysql’ => [
‘driver’ => ‘mysql’,
‘host’ => env(‘DB_HOST’, ‘127.0.0.1’),
‘port’ => env(‘DB_PORT’, ‘3306’),
‘database’ => env(‘DB_DATABASE’, ‘forge’),
‘username’ => env(‘DB_USERNAME’, ‘forge’),
‘password’ => env(‘DB_PASSWORD’, ”),
‘unix_socket’ => env(‘DB_SOCKET’, ”),

// なぜか固定なので、他の項目と同様に.envから取得するように変更(取得出来なかった時用に、元のデフォルトを指定しておく)
// ‘charset’ => ‘utf8mb4’,
‘charset’ => env(‘DB_CHARSE’, ‘utf8mb4’),
// ‘collation’ => ‘utf8mb4_unicode_ci’,
‘collation’ => env(‘DB_COLLATION’, ‘utf8mb4_unicode_ci’),

‘prefix’ => ”,
‘strict’ => true,
‘engine’ => null,
],

4, php artisan migrate:refreshでテーブルを作り直して、テーブルの照合順序が変更されているか確認
※migrate:refreshだと、migrationsテーブルはutf8mb4_unicode_ciのままなので、phpmyadminから全消ししてから作り直した方がいい。