【问题标题】:Node JS Sails Two Different DatabasesNode JS 运行两个不同的数据库
【发布时间】:2013-07-25 22:04:37
【问题描述】:

我正在构建一个应用程序,其中我有一个本地数据库 (mysql),但我还需要连接到另一个数据库,以便我可以从第二个数据库 (oracle) 中提取一些信息,有没有人有任何信息或示例使用 Sails 管理多个数据库?

谢谢。

【问题讨论】:

  • 这个“帆?” sailsjs.org
  • 似乎不太适合 SO。似乎您在广泛网络中询问 Sails 示例……您尝试过什么,什么代码?什么不工作。请参阅 SO 常见问题解答
  • 发现这个问题(并提供了答案!)非常有帮助。

标签: javascript mysql node.js oracle sails.js


【解决方案1】:

Sails 使用 Waterline 作为其 ORM,而 Waterline 具有允许使用多个数据存储的适配器的概念。对于您创建的每个模型,您可以定义一个 adapter 属性。因此,例如,如果您想创建一个使用 mysql 作为其数据存储的 User 模型,它看起来像这样。

在 api/models/User.js 中

module.exports = {

    adapter: 'mysql',

    attributes: {
        name: 'string',
        email: 'string',
        phoneNumber: {
            type: 'string',
            defaultsTo: '555-555-5555'
        }
    }
};

您还可以将另一个模型(例如 Office)与不同的数据存储区(例如 mongoDB)关联。

在 api/models/Office.js

module.exports = {

    adapter: 'mongo',

    attributes: {
        address: 'string',
        city: 'string',
        state: 'string'
    }
};

您唯一需要确保的是您已在项目中安装了 sails-mysqlsails-mongo 适配器并进行了配置。您可以使用 npm 安装适配器。

npm install sails-mysql sails-mongo --save

您可以在adapter configuration 的sails 文档中了解更多如何配置数据库。

对于您的特定用例,目前还没有 Oracle 适配器。如果您有兴趣开始该项目,这里有一些docsboilerplate 可以开始制作sails 适配器。当前可用的适配器列表可以在here找到。

【讨论】:

  • 如果与同一堆栈上的两个不同数据库连接,则似乎不起作用。例如,mongo 但 test 和 test2 数据库然后有两个适配器并在模型中指定不起作用..使用 10.0.0-rc5
  • 您可以在“config/connnections.js”或“config/adapters.js”中定义多个数据库配置,即使对于同一主机上的多个数据库也是如此。在此处阅读有关适配器的更多信息 - sailsjs.org/#!documentation/config.adapters
【解决方案2】:

如果您询问的是 Sails.js 及其 Waterline ORM,Oracle 似乎还没有可用的兼容适配器。 https://github.com/balderdashy/waterline

【讨论】:

  • 确实——还没有!如果有人有一个 oracle 数据库供我们开发,那肯定会有所帮助
  • 我怀疑你可以逃脱针对 oracle XE db 的开发。它在 CPU 和存储方面受到限制,但除此之外主要与标准匹配并且它是免费的。
猜你喜欢
  • 2015-01-06
  • 2020-06-08
  • 2016-01-17
  • 1970-01-01
  • 2018-06-22
  • 2019-09-09
  • 2016-04-07
  • 1970-01-01
  • 2020-01-03
相关资源
最近更新 更多