是否可以使用 sequelize 迁移设置字符集?

问题描述

我正在做一个项目,我必须将数据库的字符集设置为

utf8mb4

但是即使我在配置文件中定义了字符集,也存在问题,当我使用 sequelize-cli 运行迁移时,它会创建数据库和表

utf8

这是我的 config.json 文件

{
  "development": {
    "username": "root","password": "root","database": "coinscout","host": "127.0.0.1","dialect": "MysqL","define": {
      "charset": "utf8mb4","collate": "utf8mb4_general_ci"
    }
  }
}

这会创建一个包含 utf8 字符集表的数据库,但如果我删除数据库并运行 db.sequelize.sync();代码中,它正确地创建了具有给定字符集的表。

所以我想知道如果我使用 sequelize-cli 创建和运行迁移,什么是更改字符集的最佳方法

解决方法

来自 CLI

sequelize db:create --charset utf8mb4 --collate utf8mb4_unicode_ci

这可能有点令人困惑,因为在使用 charset 选项适用于什么级别的配置和模型文件时,有时会产生歧义。