gpt4 book ai didi

javascript - 从sequelize模型 'define'向sqlite添加约束

转载 作者:太空宇宙 更新时间:2023-11-04 02:39:08 25 4
gpt4 key购买 nike

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

最佳答案

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 的文档中找到。

关于javascript - 从sequelize模型 'define'向sqlite添加约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18586346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com