【问题标题】:sequelize: retrieve model of a manually created tablesequelize:检索手动创建的表的模型
【发布时间】:2016-03-13 14:19:46
【问题描述】:

如果我使用 sequelize API (sequelize.define) 创建表,它会返回一个模型对象(以下示例中的 User),我可以使用它来执行查询 (User.find) 和其他类型操作次数:

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

如果我需要在没有该 api 的情况下在数据库中创建一个表,但我需要使用纯 sql 查询来完成,有没有办法为我的手动表检索相同的模型对象并像其他表一样使用它?

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

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

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

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

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

    此答案基于文档here

    【讨论】:

      猜你喜欢
      • 2021-05-14
      • 2016-03-30
      • 2014-01-05
      • 2019-08-10
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 1970-01-01
      相关资源
      最近更新 更多