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