【问题标题】:Tablenames are missing from query in sequelize-typescript?sequelize-typescript 的查询中缺少表名?
【发布时间】:2019-01-08 14:39:11
【问题描述】:

我在 AWS lambda 上与 Serverless 一起使用 sequelize-typescript,但我的查询在本地正常工作时遇到问题,但在 Lamba 上,SQL 查询中的所有表名都是空的...

我有一个这样的模型:

@Table
export class Manufacturer extends Model<Manufacturer> {
  @Column
  public name: string;
}

但根据 CloudWatch 得出的查询结果是:

SELECT [id], [name] FROM [s] AS [s];

如果我在本地运行 i 它会执行:

SELECT [id], [name] FROM [Manufacturers] AS [Manufacturer];

...正确使用类名“Manufacturer”作为表名...如果我在@Table 装饰器中手动设置表名,一切都在 Lambda 上按预期工作...

日志中没有警告、错误或任何其他指针说明为什么会发生这种情况……有人有想法吗?

【问题讨论】:

    标签: sequelize.js sequelize-typescript


    【解决方案1】:

    我自己找到了解释: https://www.npmjs.com/package/sequelize-typescript#minification ...它说:

    如果你需要缩小你的代码,你需要设置 tableName 和 @Table 注释的 DefineOptions 中的 modelName。 sequelize-typescript 使用类名作为 tableName 的默认名称 和型号名称。缩小代码后,类名将不再 是最初定义的(这样用户类将成为 b 类 例如)。

    我猜 Serverless 在将代码发送到 AWS 之前会进行缩小...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      • 2020-03-18
      • 2020-05-08
      • 1970-01-01
      • 1970-01-01
      • 2021-08-05
      • 2016-04-14
      相关资源
      最近更新 更多