2011-05-07 79 views
6

我對Drupal非常陌生,並且正在獲取關於視圖的一些混合信息,所以我想看看是否有人能讓我走上正確的道路。如何使用Drupal發佈駐留在外部數據庫中的數據?

這是我的情況。我有一個單獨的數據庫(在同一個Drupal數據庫服務器上),它有很多由另一個團隊維護的數據。我們希望將這些數據發佈到網絡上,並且在獲得一些建議之後,它看起來像Drupal視圖是一條路。

問題是,我不知道該從哪裏去。我閱讀了文檔,只是看了Lullabot上的視圖教程,但我的數據根本不在字段欄中。

我讀了一篇文章,說我不得不將「外部數據庫」描述爲Drupal,但不知道該怎麼做。我在drupal.org(服務等)上發現了一些工具,他們說可以分析我的數據庫並將結構報告給Drupal,但我無法弄清楚。

基本上我想要的最終結果是兩件事。首先是將數據從外部數據庫簡單地顯示到Drupal節點上(唯一的問題是,每個頁面都是特定於數據庫實體的,因此雖然數據格式/顯示是標準的,但數據本身會隨着鏈接而改變,例如,www.example.com/ibm應該只提供我們關於ibm的數據,而且公司名稱也會發生變化,所顯示的數據也會變化),稍後我可能會想要在數據出現之前對數據進行一些計算。

任何人有任何建議如何做到這一點或任何教程?

如果有幫助,我使用的Drupal 7

在一個側面說明,如果這是不可能做到這一點在Drupal或者即使是這樣,這將是最好的PHP創建這個,然後以某種方式將它包裝在Drupal中?我在辯論這個,因爲我認爲我知道如何在PHP中做到這一點,它可以讓我更好地控制結果(但我有點懶,因爲我在想也許Drupal可以爲我做到這一點:-)

更新:好的,現在我更加困惑。我已經查看了視圖,仍然無法使其與我的數據庫集成。我已經看過架構,並將其作爲描述數據庫或使其與Drupal一起復制的方式提供。我不確定我是否正確的方向(或正確的方向),因爲到目前爲止我所嘗試的一切似乎都是死路一條。有人可以提出一個教程嗎?或者將他們的經歷告訴他們完成這件事?我只是想將另一個數據庫中的內容顯示到頁面上(當用戶選擇特定的股票行情時),我可能希望稍後允許用戶自定義它(這就是爲什麼我認爲需要視圖)。

回答

6

只要連接到數據庫,在settings.php中,您可以添加額外的數據庫連接,並在代碼中使用db_set_active('connection_name')函數將您的活動數據庫連接切換到該源。構建視圖插件 - 這是一個遠遠超出單個答案範圍的重大主題。我只能說谷歌它,祝你好運,並回來具體:)

+0

謝謝大衛。我試圖得到如何解決這個問題的一般想法。我已經看到了你提到的db連接,我可以在php代碼中連接到另一個數據庫,然後切換回drupal數據庫。但這是否意味着我應該只寫自定義代碼?或視圖模塊可以識別我的外部數據庫,並允許我顯示我的內容? – Lostsoul 2011-05-07 03:27:48

+1

@Lostsoul對不起,如果我不清楚。您需要編寫一個視圖插件以允許視圖瞭解數據結構。您可以查看任何具有自己的視圖插件的Drupal模塊,包括Views模塊附帶的插件。 – 2011-05-07 03:30:23

+0

好的,謝謝大衛。我現在知道了。我會開始研究一些視圖代碼,看看我能否理解他們是如何做的。非常感謝,如果可以的話,我會繼續保持這個問題,以防別人有另一種方法。再次感謝大衛。 – Lostsoul 2011-05-07 03:34:46

1

模塊Forena可用於查詢(而不是更新)各種數據庫,如MySQL數據庫,並建立數據庫連接外部數據庫。它配備了各種鉤子,可以在另一個模塊中使用Forena。

有關Forena更多的細節,2種類型的文檔可供選擇:

  • Community documentation
  • Forena自帶的文檔,您可以在安裝和啓用模塊後立即訪問它。檢出demo site當前的在線例子:

    • Forena文檔 - 使用鏈接「報告文件」或訪問相對鏈接/報告/幫助。
    • Forena樣本 - 使用鏈接「報告樣本」或訪問相關鏈接/報告/樣本(這些樣本功能齊全,因此請務必嘗試一下,比如SVG Graph樣品)。

最新的7.x版,4.x的版本還包括無論是創建報表(所見即所得的報表編輯器)和/或用於創建SQL查詢(查詢驚人的(我認爲)UI生成器)。

這裏是mysql數據庫部分的一些變化:

  1. 使用的SQLite,而不是MySQL數據庫:在Forena樣品實際上被運往包括(微型)SQLite數據庫。請在demo site中查看:顯示的數據中包含sampledb中的數據,該數據採用SQLite格式。
  2. Forena帶有一整套Supported database connections ...如MS SQL,Oracle,Postgress或任何PDO兼容變體。

有足夠的理由考慮給Forena試一試嗎?在這樣做的時候,使用它的問題隊列來處理您可能遇到的任何類型的支持/文檔​​請求。

請注意:我是Forena的共同維護者。

相關問題