风帆1.2.4,水线0.13.6,sails-postgresql 1.0.2,npm 6.14.4,macOS 10.15.4
我的最终目标是抑制水线提供的警告,因为我在sails模型中将字段配置为“数字”,而在postgresql中将其配置为“ bigint”。我知道不匹配的情况,但这就是我想要的,因为我将这个字段用于毫秒的日期时间,所以我确定这些值不会超过“数字”的大小(因此,使用“ bigint')。适配器在postgresql中创建的“真实”字段不适合该目的。
一切正常,除了风帆会产生以下非常冗长的日志:
您看到此警告,因为您的数据库中有一些记录没有 与您的模型匹配。这通常是模型定义的结果 更改时也不会迁移剩余数据。但这也可能是因为记录 是从Sails / Waterline以外的地方在数据库中添加或修改的 (例如phpmyadmin或其他应用)。无论哪种情况,为了消除此警告, 您有一些选择。首先,您可以更改模型定义,以便 它与您数据库中的现有记录匹配。或者您可以更新/销毁 数据库中的旧记录;手动或使用迁移脚本。
(例如,要擦除所有数据,您可以只使用
migrate: drop
。)更罕见的是,此警告可能意味着适配器本身存在错误。如果你 认为是这种情况,请通过打开此适配器与维护者联系 问题,或访问http://sailsjs.com/support寻求帮助。
我发现存在带有水线的'skipRecordVerification'选项,并向所有查询附加了'.meta({skipRecordVerification:true})',但是每次应用程序访问数据库时仍会产生警告。
是否有任何使其与'skipRecordVerification'一起使用或其他抑制警告的方法?
答案 0 :(得分:0)
我认为目前没有解决此问题的全局选项,这真的很烦人。 我设法创建了一种解决方法,如下所示:
var queryOptions = parseBlueprintOptions(req);
<块引用>if (queryOptions.meta)
queryOptions.meta['skipRecordVerification'] = true;
else
queryOptions.meta = { 'skipRecordVerification': true };
我希望这对现在有用,直到风帆开发人员在模型设置中创建全局选项。