sequelize:检索手动创建的模型 table

sequelize: retrieve model of a manually created table

如果我使用 sequelize API (sequelize.define) 创建 tables,它 returns 一个模型对象 (User在下面的例子中)我可以用来做查询(User.find)和其他类型的操作:

var User = sequelize.define('User', {/* ... */})

如果我需要在没有 api 的数据库中创建 table,但我需要使用纯 sql 查询来完成,有没有办法检索与我的手册相同的模型对象 table 并像其他人一样使用它?

sequelize.models 中,我看到了我所有的 table,但没有看到自定义的。

您需要使用 define 定义一个模型,并将 tableName 属性 设置为您手动定义的 table。

要作为模型属性检索的数据库列必须满足许多条件。每个都应该有一个与列的类型相匹配的数据类型。它们应该具有与数据库列相同的约束(级联、空值等)。列名称应与 Sequelize 自动生成的名称相匹配,或者使用 field.

手动指定

由于此模型的 table 已经手动创建,请确保它没有 sync 到数据库。要测试您指定的模型是否可以手动指定 table,您应该将模型同步到测试数据库,并将自动生成的 SQL 与您正在使用的手动生成的 SQL 进行比较。

此答案基于文档 here