Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从sequelize模型“define”向sqlite添加约束_Javascript_Node.js_Sqlite_Sequelize.js - Fatal编程技术网

Javascript 从sequelize模型“define”向sqlite添加约束

Javascript 从sequelize模型“define”向sqlite添加约束,javascript,node.js,sqlite,sequelize.js,Javascript,Node.js,Sqlite,Sequelize.js,我正在使用SequelizeJS为我的nodejs应用程序创建模型。我在启动文件中定义了模型定义,并将在应用程序启动时sequelize.sync。 我的问题是,添加到字段中的数据有很多限制 例如:我有一个名为“source”的字段,它的类型是Sequelize.ENUM,它的值只能是['pod','must','cap']中的一个。 在sqlite中,我可以选择直接将这些限制放在DB中。如何从sequelize中执行相同的操作?可以在同步期间完成吗 sequelize.define('mode

我正在使用SequelizeJS为我的nodejs应用程序创建模型。我在启动文件中定义了模型定义,并将在应用程序启动时sequelize.sync。 我的问题是,添加到字段中的数据有很多限制 例如:我有一个名为“source”的字段,它的类型是Sequelize.ENUM,它的值只能是['pod','must','cap']中的一个。 在sqlite中,我可以选择直接将这些限制放在DB中。如何从sequelize中执行相同的操作?可以在同步期间完成吗

sequelize.define('model', {
    source1: Sequelize.ENUM('pod', 'must', 'cap'),
    source2: {
        type: Sequelize.ENUM,
        values: ['pod', 'must', 'cap']
    }
上面的代码将在sequelize中创建一个枚举类型,该类型仅限于您给定的值。但是,sqlite,这意味着该字段将仅创建为文本:

..., `status` TEXT, ...
但是,这些值在插入之前仍将在javascript中进行验证

在mysql/pg中,将创建一个实际的枚举,仅限于以下值:

... `status` ENUM('pod', 'must', 'cap'), ...
使用枚举类型的示例也可以在以下位置的文档中找到: