我的Sailsjs中有以下内容 config / adapter.js :
module.exports.adapters = {
'default': 'postgres',
postgres : {
module : 'sails-postgresql',
host : 'xxx.compute-1.amazonaws.com',
port : 5432,
user : 'xxx',
password : 'xxx',
database : 'xxx',
ssl : true,
schema : true
}
};
在 models / Movie.js :
中 Movie = {
attributes: {
tableName: 'movies.movies',
title: 'string',
link: 'string'
}
};
module.exports = Movie;
在我的控制器:
中Movie.query("SELECT * FROM movies.movies", function(err, movies) {
console.log('movies', movies.rows);
});
movies.rows DOES 返回正确的数据
但是:
Movie.find({ title: 'Frozen' }, function(err, movies) {
console.log('movies', movies)
});
电影会返回 EMPTY ARRAY
所以似乎所有连接都很好,因为原始查询工作得很好。
设置Movie.find()或者使用models / Movie.js会有什么问题吗?
tableName属性是否不支持postgresql schema_name.table_name?
答案 0 :(得分:2)
首先,您需要将tableName
移出attributes
,因为它是类级属性。其次,使用sails-postgresql
选项,meta.schemaName
确实对模式有一些(非文档的)支持:
Movie = {
tableName: 'movies',
meta: {
schemaName: 'movie'
},
attributes: {
title: 'string',
link: 'string'
}
};
module.exports = Movie;
您可以尝试一下,如果它不起作用,请将表格移至public
架构,或nudge the author of the schemaName
support寻求帮助。