如果我使用sequelize API(sequelize.define)创建表,它将返回一个模型对象(以下示例中为 User ),我可以使用它来进行查询(User.find)和其他类型经营:
var User = sequelize.define('User', {/* ... */})
如果我需要在没有api的数据库中创建一个表,但是我需要用纯SQL查询来完成它,有没有办法为我的手册表检索相同的模型对象并像其他人一样使用它?
在 sequelize.models 中,我会看到我的所有表格,但不是自定义表格。
答案 0 :(得分:1)
您需要使用define
定义模型,并将tableName
属性设置为手动定义的表。
要作为模型属性检索的数据库列必须符合许多条件。每个都应该具有与列的类型匹配的数据类型。它们应该具有与DB列相同的约束(级联,null等)。列名称应与Sequelize自动生成的内容匹配,或者使用field
手动指定。
由于此模型的表已经手动创建,因此请确保它不是sync
的数据库。要测试您指定的模型是否适用于手动指定的表,您应该将模型同步到测试数据库,并将自动生成的SQL与您正在使用的手动生成的SQL进行比较。
此答案基于文档here。