运行 rails 迁移会覆盖我的字符集知道为什么吗?

问题描述

我的数据库中的所有内容都设置为 utf8mb4 :

mysql> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8mb4_general_ci |
| collation_database   | utf8mb4_general_ci |
| collation_server     | utf8mb4_general_ci |
+----------------------+--------------------+```

我的 database.yml [我在创建之后添加了编码/归类]。但是我确实将所有表和数据库更新为 utf8mb4。

development:
  adapter: mysql2
  encoding: utf8mb4
  collation: utf8mb4_general_ci

当我运行任何 rails db:migrate 命令时,每个表的导出总是如下所示:

-/*!50503 SET character_set_client = utf8mb4 */;
+/*!40101 SET character_set_client = utf8 */;

我可以检查这些单独的表中的任何一个,并看到它们确实是 utf8mb4(但仅限于某些行。也许这是一个问题?):

mysql> show full columns from ab_experiment_buckets;
+--------------------+--------------+--------------------+------+-----+---------+----------------+---------------------------------+---------+
| Field              | Type         | Collation          | Null | Key | Default | Extra          | Privileges                      | Comment |
+--------------------+--------------+--------------------+------+-----+---------+----------------+---------------------------------+---------+
| id                 | int(11)      | NULL               | NO   | PRI | NULL    | auto_increment | select,insert,update,references |         |
| foobar_id   | int(11)      | NULL               | NO   |     | NULL    |                | select,references |         |
| foobar_nam        | varchar(255) | utf8mb4_general_ci | NO   |     | NULL    |                | select,references |         |
| foobar_index       | int(11)      | NULL               | NO   |     | NULL    |                | select,references |         |
| foobar_probability | float        | NULL               | NO   |     | NULL    |                | select,references |         |
| foobar_value       | text         | utf8mb4_general_ci | YES  |     | NULL    |                | select,references |         |
| created_at         | datetime     | NULL               | YES  |     | NULL    |                | select,references |         |
| updated_at         | datetime     | NULL               | YES  |     | NULL    |                | select,references |         |
| foobar_is_default         | tinyint(1)   | NULL               | YES  |     | NULL    |                | select,references |         |
+--------------------+--------------+--------------------+------+-----+---------+----------------+---------------------------------+---------+

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...