Sailsjs模型对象不返回Postgresql的数据

时间:2014-04-01 19:36:34

标签: postgresql sails.js waterline

我的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?

1 个答案:

答案 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寻求帮助。