1

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

谢谢。

4

2 回答 2

12

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

在 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

您可以在sails 文档中了解更多如何配置数据库以进行适配器配置

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

于 2013-09-05T02:33:42.183 回答
2

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

于 2013-07-29T14:35:49.613 回答