【发布时间】:2017-08-17 14:47:23
【问题描述】:
我正在使用 Laravel 5.3,并且我已经设置了我的生产服务器。所有数据库迁移均已使用以下数据库配置创建:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
但是现在,我的一些用户报告说,他们在尝试保存包含表情符号的表单时遇到错误????其中的图标。搜索后我发现我需要将 mysql 字符集设置为 utf8mb4 才能正常工作,所以我的配置应该是这样的:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
由于这是在生产服务器中,我不能这样做migrate:refresh。所以我的问题是:
- 如何更改我使用 laravel 迁移创建的现有数据库以使用
utf8mb4而不是utf8并同时更新 laravel?有没有更简单的方法来做到这一点? - 如果上述情况可行,我最好为所有表格设置
utf8mb4,还是仅将其用于我将真正使用表情符号的 2 个表格列。
感谢您的帮助。
【问题讨论】:
标签: mysql laravel laravel-5.3 emoji laravel-migrations