是否可以使用 sequelize 迁移设置字符集?
Is it possible to set charset with sequelize migrations?
我正在做一个项目,我必须将数据库的字符集设置为
utf8mb4
但是即使我已经在配置文件中定义了字符集,还是有问题,当我使用 sequelize-cli 运行 迁移时,它会创建数据库和 tables
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 字符集中创建一个带有 tables 的数据库,但是如果我删除数据库并且 运行
db.sequelize.sync();
从代码中它使用给定的字符集正确创建 table。
所以我想知道如果我使用 sequelize-cli 创建和 运行 迁移,更改字符集的最佳方法是什么?
来自 CLI
sequelize db:create --charset utf8mb4 --collate utf8mb4_unicode_ci
这可能有点令人困惑,因为在 charset
选项适用的级别上处理配置和模型文件时有时会产生歧义。
我正在做一个项目,我必须将数据库的字符集设置为
utf8mb4
但是即使我已经在配置文件中定义了字符集,还是有问题,当我使用 sequelize-cli 运行 迁移时,它会创建数据库和 tables
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 字符集中创建一个带有 tables 的数据库,但是如果我删除数据库并且 运行
db.sequelize.sync();
从代码中它使用给定的字符集正确创建 table。
所以我想知道如果我使用 sequelize-cli 创建和 运行 迁移,更改字符集的最佳方法是什么?
来自 CLI
sequelize db:create --charset utf8mb4 --collate utf8mb4_unicode_ci
这可能有点令人困惑,因为在 charset
选项适用的级别上处理配置和模型文件时有时会产生歧义。