我正在使用 Rails 5 和 MySQL 5.7。我的database.yml中有以下内容:
default: &default
adapter: mysql2
pool: 5
encoding: utf8mb4
charset: utf8mb4
collation: utf8mb4_unicode_ci
socket: /tmp/mysql.sock
development:
<<: *default
database: [...]
username: [...]
password: [...]
我运行rake db:reset
来重新创建我的数据库,然后运行show create table users
,我看到CREATE TABLE
users ([...])引擎=InnoDB默认字符集=utf8
。
为什么我的 CHARSET=utf8
以及如何修复它(使其等于 utf8mb4
)?谢谢。
最佳答案
rake db:reset
是错误的。 rake db:drop && rake db:create && rake db:migrate
正确。
重置
刚刚从已存储的架构创建了表,该架构具有错误的字符集和排序规则。但是从迁移中重新创建它们会使用新的字符集和排序规则创建它们。
关于mysql - 为什么我的表的编码错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38964508/