BETA

Laravelのmigrateで作られるテーブルの文字コードを変える

投稿日:2020-01-28
最終更新:2020-01-28

php artisan migrateを使ってTABLEを作成したところ、文字コードがutf8mb4_unicode_ciとなっていた。

Laravel使う前に手作業でやってたときはutf8mb4_general_ciで作ってた。(utf8mb4_unicode_ciは平仮名カタカナを別々のものとして認識できないらしいので。)

ということでこの文字コードを指定したいのだけれども、LaravelのマニュアルのMigrationの章には文字コードに関する記述がない。

解決策

config/database.phpの

   'mysql' => [  
        'driver' => 'mysql',  
        'url' => env('DATABASE_URL'),  
        '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', ''),  
        'charset' => 'utf8mb4',  
        'collation' => 'utf8mb4_unicode_ci', ★★★  
        'prefix' => '',  
        'prefix_indexes' => true,  
        'strict' => true,  
        'engine' => null,  
        'options' => extension_loaded('pdo_mysql') ? array_filter([  
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),  
        ]) : [],  

★★★の箇所をutf8mb4_general_ciに変えたところ、Migrateで出来上がるTABLEの文字コードがutf8mb4_general_ciになりました。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

あろはの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう