我在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];
如果我在本地运行,它将执行:
SELECT [id], [name] FROM [Manufacturers] AS [Manufacturer];
......正确使用类名“ Manufacturer”作为表名...如果我在@Table装饰器中手动设置表名,那么一切也可以在Lambda上正常工作...
日志中没有警告,错误或任何其他指针可以说明为什么发生这种情况...有人有想法吗?
答案 0 :(得分:0)
我自己从以下地方找到了解释: https://www.npmjs.com/package/sequelize-typescript#minification ...说:
如果您需要缩小代码,则需要设置tableName和 @Table注释的DefineOptions中的modelName。 sequelize-typescript使用类名作为tableName的默认名称 和modelName。缩小代码后,类名将不再 是最初定义的类(这样,类User将成为类b 例如)。
我猜测Serverless在将代码发送到AWS之前会进行精简...