2013-07-25 44 views
1

我正在建立一個應用程序,我有一個本地數據庫(MySQL),但我需要連接到另一個數據庫以及我可以從第二個數據庫(甲骨文)拉一些信息,做任何人有任何信息或例子使用Sails來管理多個數據庫?節點JS風帆兩個不同的數據庫

謝謝。

+0

這「風帆?」 http://sailsjs.org/ –

+0

似乎並不像一個適合SO的好問答。看起來像你投了一個廣泛的網絡要求Sails的例子......你試過什麼,什麼代碼?什麼不工作。看到SO FAQ – bryanmac

+0

發現這個問題(並提供答案!)非常有幫助。 – arcseldon

回答

12

Sails使用Waterline作爲ORM,而Waterline有一個允許使用多個數據存儲的適配器的概念。對於您創建的每個模型,您可以定義一個適配器屬性。例如,如果您想創建一個使用mysql作爲其數據存儲區的模型,它看起來像這樣。

在API /模型/ user.js的

module.exports = { 

    adapter: 'mysql', 

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

你還可以再有另一種模式,如辦公室,用不同的數據存儲如MongoDB的關聯。

在API /模型/ Office.js

module.exports = { 

    adapter: 'mongo', 

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

你需要確保的唯一的事情是,你已經安裝了帆-mysql的帆 - 蒙戈適配器中您的項目並配置它們。您可以使用npm安裝適配器。

npm install sails-mysql sails-mongo --save 

你可以找到更多如何在風帆文檔配置數據庫的adapter configuration

對於您的特定用例,目前沒有Oracle適配器。如果您有興趣啓動該項目,那麼這裏有一些docsboilerplate開始製作風帆適配器。當前可用適配器的列表可以找到here

+0

似乎不起作用。例如,mongo,但test和test2數據庫,然後有兩個適配器,並在模型中指定不起作用。使用10.0.0-rc5 –

+0

您可以在「config/connnections.js」或「config/adapters.js」中定義多個數據庫配置甚至可以用於同一主機上的多個數據庫。請閱讀有關適配器的更多信息 - http://sailsjs.org/#!documentation/config.adapters –

2

如果您在詢問有關Sails.js及其水線ORM的信息,它似乎並沒有提供可用的兼容適配器。 https://github.com/balderdashy/waterline

+1

的確 - 還沒有!如果任何人有一個oracle數據庫躺在我們身上發展反對,它肯定會幫助 – mikermcneil

+0

我懷疑你可以擺脫與Oracle XE數據庫的發展。它只限於CPU和存儲器,但大多數情況下與標準AND相匹配並且是免費的。如果在同一堆棧上連接兩個不同的數據庫,則 – akaphenom