【问题标题】:Consequences of modifying mysql encoding from utf8 to utf8mb4 in existing rails project现有rails项目中mysql编码从utf8修改为utf8mb4的后果
【发布时间】:2022-06-22 13:36:10
【问题描述】:

我正在处理包含 100 多个表的现有 Rails 项目。

我正在添加新表,其中一列应该能够处理表情符号。

正如post 中所建议的,我在 database.yml 中添加了 encoding: utf8mb4

只是进行编码更改,我可以添加表情符号。 对其他现有表有什么影响。

有什么更好的方法可以遵循吗?

【问题讨论】:

  • 什么版本的 MySQL? (5.6 和 5.7可能产生重大后果。)
  • @Rick 我使用的是 5.7 版本

标签: mysql ruby-on-rails utf-8


【解决方案1】:
SELECT CONCAT('ALTER TABLE `', table_schema, '`.`', table_name,
              '` CONVERT TO CHARACTER SET utf8mb4;')   -- see note
    FROM information_schema.tables
    WHERE table_schema NOT IN ('mysql', 'information_schema',
            'performance_schema', 'sys');

然后将输出复制/粘贴到客户端工具中。

警告:这会将所有 VARCHAR/TEXT 列转换为 utf8mb4,即使是您可能希望保留为 ascii 的列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-16
    • 2016-11-18
    • 1970-01-01
    • 2019-07-16
    • 2021-10-29
    • 2014-02-26
    • 2015-07-16
    • 1970-01-01
    相关资源
    最近更新 更多