strapi在给某个collection添加新字段后可能会引发的一种问题

实际案例是给已经运行的应用中的某个collection添加新的字段,在strapi中可能并没有在这种情况下对原先已有的数据做migrate操作,而是放任不管。所以,这就会产生一个潜在的风险。例如看下面代码:

entities = await strapi.services.model.find(ctx.query, ['categories', 'keywords', 'products']);

假设,products字段是model中后添加的,旧model中的数据并不存在products这个字段。此时,这个指令的执行就会出错,提示:

$in requires an array as a second argument, found: missing

解决方案:

  1. 在旧数据比较少的情况下,我们可以通过strapi的后台管理页面给model的旧数据设置products字段(设定一个指定值,然后再删除)。
  2. 如果旧数据比较多,就要想办法直接做数据库操作,给旧的model数据批量添加products字段了。

发表评论

邮箱地址不会被公开。 必填项已用*标注