2

我正在使用带有sails-postgresql 适配器的sails v1.2.2。寻找使用具有特定 schemaName 的模型。但是与默认 schemaName 映射的关系(公共)

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

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

4

1 回答 1

1

嗨,当我尝试升级到sails v1.xx 时,我遇到了同样的问题,我试图整天解决这个问题,为 VSCode 做一些调试 *thx。

ps:我不知道这种方法是否真的解决了问题,但它确实有效

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

  1. 锻造阶段三-query.js

    我不知道水线到底是如何工作的,但是如果你想在查询模型时获取数据,sails 会添加/替换(如果存在)元属性,在元属性中添加一些获取

所以我必须在第 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. 帮助-find.js

在这个文件中我需要替换一些代码

在第 247 行替换为此代码

meta: junctionTableModel.meta,

在第 290 和 441 行替换为此代码

var meta = childTableModel.meta;

希望这可以帮助..

于 2019-06-20T15:18:46.173 回答