带有sails.js 和sails-postgresql 的数据库模式
Posted
技术标签:
【中文标题】带有sails.js 和sails-postgresql 的数据库模式【英文标题】:Database schema with sails.js and sails-postgresql 【发布时间】:2014-08-14 09:03:28 【问题描述】:有没有办法使用sails-postgresql 水线适配器设置数据库架构?
默认情况下,postgres 适配器总是在数据库中选择默认的公共架构,但我想将它连接到另一个架构。
例如,我有数据库开发,数据库开发中的模式测试和模式测试中的表用户。 现在我想从表用户中选择所有数据,用sql语法我可以简单地写:
SELECT * FROM test.users
如何让它在风帆中工作?
当我编写一个使用 postgres 适配器的模型时,方法 Users.find() 将在默认公共模式中查找表 users。我想将其更改为在不与我的 postgres 数据库交互的情况下查看模式测试。
有可能吗?
【问题讨论】:
【参考方案1】:对此有支持,尽管它尚未记录在案。您可以使用meta.schemaName
属性为模型设置架构名称,例如:
module.exports =
tableName: 'users',
meta:
schemaName: 'test'
,
attributes:
...
;
更新
事实证明,这个功能在几个版本中基本上被破坏了,但它已经在 Sails-Postgresql v0.11.0 中进行了改进和发布。语法与上面相同。主要的警告是它不适用于共享相同tableName
的多个 Waterline 模型。
【讨论】:
这对你有用吗?无论 schemaName 设置为模型,它仍会写入公共模式。我错过了什么吗? 检查我的答案 Diego【参考方案2】:这似乎在最新的 1.0.3 版本上有点错误,但我找到了一种方法来完成它,通过这样做:
postgresql:
adapter: require('sails-postgresql'),
url: 'postgresql://postgres:blablabla@localhost:5432/simplerp',
schemaName: 'radius',
在您的 config/datastores.js 文件中。
和平,出去!
【讨论】:
以上是关于带有sails.js 和sails-postgresql 的数据库模式的主要内容,如果未能解决你的问题,请参考以下文章
Bcrypt:带有 Docker 和 Sails.JS 的无效 ELF 标头