【问题标题】:Is it possible to set charset with sequelize migrations?是否可以使用 sequelize 迁移设置字符集?
【发布时间】:2021-07-06 13:25:49
【问题描述】:

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

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 中使用 db:create 命令?我相信 charset 和 collat​​e 都支持作为选项:sequelize db:create --charset utf8mb4 --collate utf8mb4_unicode_ci
  • @dusthaines 谢谢你解决了我的问题,你能把这个作为答案发布,以便我可以批准它作为批准的答案吗?

标签: mysql node.js sequelize.js sequelize-cli


【解决方案1】:

从 CLI

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

这可能有点令人困惑,因为在使用 charset 选项适用于哪个级别的配置和模型文件时有时会模棱两可。

【讨论】:

    猜你喜欢
    • 2019-05-16
    • 1970-01-01
    • 2017-06-26
    • 2012-01-22
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 2020-03-04
    • 2020-05-06
    相关资源
    最近更新 更多