我正在将Sails v1.2.2与sails-postgresql适配器一起使用。 寻找将Model与特定的schemaName一起使用。 但是与使用默认schemaName(公共)映射的关系
{
tableName : "t_role",
meta: {
schemaName: 'autorisation'
}
}
AdapterError:来自数据库适配器的意外错误:关系“ public.t_role”不存在
答案 0 :(得分:1)
您好,当我尝试升级到Sails v1.x.x时,我也面临着同样的问题。我想一整天弄清楚,为VSCode做一些调试* thx。
ps:我不知道这种方法是否能真正解决问题,但它可行
我必须在水线库的两个文件中添加一些代码,这里是一些文件
我不知道吃水线的工作原理,但是如果您要在查询模型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;
}
}
一切正常,直到我尝试使用填充获取一些数据,并且帆崩溃时,架构再次设置为公共,在我再次进行调试后,我找到了该文件
在此文件中,我需要替换一些代码
第247行替换为该代码
meta: junctionTableModel.meta,
在290行和441行替换为该代码
var meta = childTableModel.meta;
希望这会有所帮助。