1

我正在使用 SequelizeJS 为我的 nodejs 应用程序创建模型。我在启动文件中定义了我的模型定义,并将在应用程序启动时 sequelize.sync()。我的问题是,我在添加到字段中的数据中有很多限制,例如:我有一个名为“source”的字段,其类型为 Sequelize.ENUM,其值应该只是其中之一 ['pod', '必须','上限']。在 sqlite 中,我可以选择将这些约束直接放入数据库中。我如何从续集做同样的事情?可以在同步()期间完成吗?

4

1 回答 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 回答