我正在使用 SequelizeJS 为我的 nodejs 应用程序创建模型。我在启动文件中定义了我的模型定义,并将在应用程序启动时 sequelize.sync()。我的问题是,我在添加到字段中的数据中有很多限制,例如:我有一个名为“source”的字段,其类型为 Sequelize.ENUM,其值应该只是其中之一 ['pod', '必须','上限']。在 sqlite 中,我可以选择将这些约束直接放入数据库中。我如何从续集做同样的事情?可以在同步()期间完成吗?
问问题
557 次
1 回答
1
sequelize.define('model', {
source1: Sequelize.ENUM('pod', 'must', 'cap'),
source2: {
type: Sequelize.ENUM,
values: ['pod', 'must', 'cap']
}
上面的代码将在 sequelize 中创建一个枚举类型,该类型仅限于您提供的值。但是,sqlite本身并不支持 enums,这意味着该字段将被创建为文本:
..., `status` TEXT, ...
但是,这些值在插入之前仍将在 javascript 中进行验证。
在 mysql / pg 一个实际的枚举,仅限于将创建的值:
... `status` ENUM('pod', 'must', 'cap'), ...
使用 enum 类型的示例也可以在http://sequelizejs.com/documentation的文档中找到
于 2013-09-03T12:24:13.917 回答