2009-11-16 13 views
3

我有一個Drupal多站點設置與數百個網站。我想製作一些表格(比如橫幅和角色),因此我不必在更改橫幅時更新數百個網站(例如)。Drupal共享表,但從另一個數據庫

$db_url = 'mysql://user:[email protected]/example_db'; 

$db_prefix = array(
    'default' => '', 
    'users'  => 'subsite2_', 
    'sessions' => 'subsite2_', 
    'authmap' => 'subsite2_', 
); 

但是......如果我有多個數據庫設置,以及:

我知道這是可以使用的settings.php這些字符串做些什麼呢?我有一個擁有所有共享表的數據庫。因此,在該數據庫中,我擁有了Banners表 - 我想讓所有其他網站使用。

多數據庫設置的原因是因爲整個多站點設置包含數百個站點(今年年底將會有數千個站點),所以每個數據庫只能容納20-40個站點​​..我懷疑很多這些表可以共享..

希望有人可以幫忙。謝謝!

Marco

+1

你有沒有想過Drupal給你什麼是值得的,它是「可擴展性」的途徑。 – dlamblin 2009-11-18 06:56:02

回答

2

a walkthrough to setup something like this。它旨在共享只有用戶數據,但原則可以擴展到或多或少的所有表。請注意,它通過在表前綴邏輯上使用一個「技巧」,不僅(或根本不)加上表名前綴,而且/只使用點符號的數據庫選擇器,例如, someDatabase.someTable。所以我不確定這將如何轉化爲PostgreSQL後端。另外,這意味着您仍然只能使用單個數據庫服務器,因爲(AFAIK)沒有機制在單個Drupal實例中使用兩個不同的數據庫連接。

作爲一種替代方法,您可以嘗試通過某種複製/鏡像功能將共享表映射到不同的數據庫實例,從數據庫引擎端找到解決方案。這樣你就可以使用標準的Drupal多站點設置,在Drupal後面共享表格。但是,不知道這將如何/如果這會起作用,並且會對鎖定和其他併發問題產生什麼後果。

+0

微調:Drupal確實有一種機制來使用多個後端。但它需要明確的切換,所以對於上述問題,切換不會有幫助。一箇舊的(被遺棄的)如何驗證另一個sql server的例子:http://drupalcode.org/viewvc/drupal/contributions/modules/sql_auth/ – berkes 2010-08-08 10:30:20

1

這聽起來像他們可能會幫助這兩個模塊(行情是從他們的項目頁面):

  • Data

    數據模塊可以幫助您建模,管理和查詢相關的套表。它提供了一個管理界面和一個低級別的API,用於處理表格和訪問其內容。數據模塊提供Views集成以顯示錶格數據和Drupal搜索集成以搜索表格內容。

  • Table Wizard

    表嚮導便於處理數據庫表:

    • 它允許通過瀏覽2.
    • 關係之間堆焊任何表在Drupal的默認數據庫它可以定義它所管理的表格,因此可以構建在表格中組合數據的視圖。
    • 它執行它管理的表的分析,報告空字段,數據範圍,字符串長度範圍等。
    • 它爲其他模塊提供了一個API來查看啓用他們的表。
    • 它提供了一個用於將數據導入Drupal默認數據庫(自動執行上述視圖集成)中的表的API。
    • 它與此API的實現捆綁在一起,用於導入逗號和製表符分隔的文件。
0

如果你正在使用MySQL 5+ mysql的看法是跨在Drupal多個站點的數據共享的好辦法。它不僅允許分享內容,而且個別網站可以擁有自己的內容。 devbee tutorial on mysql views in drupal.包含如何使用taxomony實現它的詳細教程。

相關問題