schemaName不适用于sails-postgresql

时间:2019-06-04 21:32:27

标签: sails.js meta sails-postgresql

我正在将Sails v1.2.2与sails-postgresql适配器一起使用。 寻找将Model与特定的schemaName一起使用。 但是与使用默认schemaName(公共)映射的关系

{
   tableName : "t_role",
   meta: {
     schemaName: 'autorisation'
   }
}

AdapterError:来自数据库适配器的意外错误:关系“ public.t_role”不存在

1 个答案:

答案 0 :(得分:1)

您好,当我尝试升级到Sails v1.x.x时,我也面临着同样的问题。我想一整天弄清楚,为VSCode做一些调试* thx。

ps:我不知道这种方法是否能真正解决问题,但它可行

我必须在水线库的两个文件中添加一些代码,这里是一些文件

  1. forge-stage-three-query.js

    我不知道吃水线的工作原理,但是如果您要在查询模型add some fetch in meta properties

    时获取数据,那么帆将添加/替换(如果存在)元属性。

所以我必须在第82行添加一些类似的代码

s3Q.using = model.tableName;

if (typeof model.meta.schemaName !== 'undefined'){
  //meta property only set if query fetch : true
  if (typeof s3Q.meta !== 'undefined'){
    //we have to initialize propery of meta
    s3Q.meta.schemaName = model.meta.schemaName;
  }else{
    s3Q.meta = model.meta;
  }
}

一切正常,直到我尝试使用填充获取一些数据,并且帆崩溃时,架构再次设置为公共,在我再次进行调试后,我找到了该文件

  1. help-find.js

在此文件中,我需要替换一些代码

第247行替换为该代码

meta: junctionTableModel.meta,

在290行和441行替换为该代码

var meta = childTableModel.meta;

希望这会有所帮助。