使用sails.js和sails-postgresql的数据库模式

时间:2014-06-24 07:35:29

标签: node.js postgresql sails.js waterline

有没有办法用sails-postgresql水线适配器设置数据库架构?

默认情况下,postgres适配器总是选择数据库中的默认公共模式,但我想将它连接到另一个模式。

例如,我有数据库开发,数据库开发中的模式测试和模式测试中的表用户。 现在我想从表用户中选择所有数据,用sql语法我可以简单地写一下:

SELECT * FROM test.users

如何让它在帆中工作?

当我编写使用postgres适配器的模型时,方法Users.find()将在默认公共模式中查找表用户。我想更改它以查看模式测试,而不与我的postgres数据库交互。

有可能吗?

2 个答案:

答案 0 :(得分:3)

虽然它尚未记录,但仍有支持。您可以使用meta.schemaName属性为模型设置模式名称,例如:

module.exports = {

  tableName: 'users',
  meta: {
     schemaName: 'test'
  },

  attributes: {
     ...
  }

};

更新

事实证明,这个功能基本上已经破解了几个版本,但它已经在Sails-Postgresql v0.11.0中进行了修改和发布。语法与上面相同。主要的警告是,它将使用多个共享相同tableName的Waterline模型。

答案 1 :(得分:0)

在最新的1.0.3版本上似乎有点bug,但是我发现可以通过以下方式完成它:

postgresql: {
    adapter: require('sails-postgresql'),
    url: 'postgresql://postgres:blablabla@localhost:5432/simplerp',
    schemaName: 'radius',
}

在您的config / datastores.js文件上。 和平,出去!