มีการพูดคุยกันมากมายที่นี่และที่อื่น ๆ เกี่ยวกับการใช้ฐานข้อมูลภายนอกใน Drupal สิ่งที่ฉันคิดออกจากที่คือ:
- วิธีที่ดีที่สุดในการทำงานกับข้อมูลในตารางฐานข้อมูลคือการใช้โมดูล Views ฉันติดตั้งแล้วและเริ่มใช้งานและพบว่ามันยอดเยี่ยมสำหรับการทำงานกับตารางที่ฉันเพิ่มลงในฐานข้อมูลของไซต์
- วิธีที่ง่ายที่สุดในการทำให้ Views เข้าใช้งานกับตารางที่ไม่ได้สร้างโดย Drupal ก็คือโมดูล Data โมดูลนี้ปฏิบัติกับตารางใด ๆ ในฐานข้อมูลเว็บไซต์ที่ไม่ได้ใช้งานโดย Drupal เป็น "ตารางเด็กกำพร้า" และช่วยให้มันเป็น "บุญธรรม" ที่คลิกปุ่ม
- โมดูล "ตัวช่วยสร้างตาราง" เห็นได้ชัดว่ามีวิธีการดังกล่าวกับตารางที่ไม่ได้อยู่ในฐานข้อมูลของเว็บไซต์ แต่โมดูลนั้นไม่พร้อมใช้งานสำหรับ Drupal 7
- ไฟล์ "settings.php" ในส่วนที่เกี่ยวกับ "การตั้งค่าฐานข้อมูล" มีเอกสารรายละเอียดเกี่ยวกับวิธีกำหนดฐานข้อมูลเพิ่มเติมที่ไซต์สามารถทำงานได้ แต่เมื่อฐานข้อมูลถูกกำหนดด้วยวิธีดังกล่าวตารางจะไม่แสดงในรายการของตารางเด็กกำพร้าในโมดูลข้อมูล
การเปลี่ยนแปลงที่ฉันทำกับคำจำกัดความของฐานข้อมูลในไฟล์“ settings.php” ของหนึ่งในเว็บไซต์ของฉันคือ:
$databases = array (
'default' => array ('default' => array (
'database' => 'db_local',
'username' => 'db_local',
'password' => '_________',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
), ),
'extra' => array ('default' => array (
'database' => 'db__extra',
'username' => 'db_admin',
'password' => '_________,
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
), ), );
ฉันมีตารางที่ฉันต้องการใช้มากกว่าหนึ่งไซต์ในการติดตั้งหลายไซต์ของฉัน ซึ่งหมายความว่าฉันต้องมีตารางในฐานข้อมูลที่สามารถเข้าถึงได้ในแต่ละไซต์ จากการอ่านที่ฉันทำเสร็จแล้วตัวเลือกของฉันสำหรับการทำคือ:
- ดีที่สุดถ้าเป็นไปได้:ค้นหาว่ามีวิธีรับโมดูลข้อมูลเพื่อจดจำตารางในฐานข้อมูลเพิ่มเติมที่กำหนดไว้ใน "settings.php" เพื่อให้สามารถใช้งานได้
- ใช้คำนำหน้าตารางเพื่ออนุญาตให้ไซต์ทั้งหมดใช้ฐานข้อมูลเดียว
- โมดูล“ รายงาน Forena ” ดูเหมือนจะทำสิ่งที่ฉันต้องการ แต่เมื่อฉันติดตั้งฉันไม่สามารถทำให้มันใช้งานได้ ฉันส่งปัญหา 2475645และไม่สามารถทำอะไรได้มากกว่านั้นเว้นแต่จะมีการแก้ไขปัญหานั้น
- เขียนโมดูลของฉันเองเพื่อให้ Views เข้าถึงฐานข้อมูลเพิ่มเติมที่กำหนดใน "settings.php"
- ติดตั้ง Drupal 6 ด้วย Table Wizard และใช้สิ่งนั้นเพื่อรับ Views เพื่อดูตารางภายนอกของฉันจากนั้นก็นำผลลัพธ์นั้นมาวางไว้ใน Drupal 7 (สิ่งนี้ถูกแนะนำในบางบทความ)
- ทำตามขั้นตอนในhttps://drupal.stackexchange.com/a/3321/45991ซึ่งเริ่มต้นด้วยการติดตั้งแพตช์และดูเหมือนว่าจะต้องสร้างโมดูลของตัวเองด้วย
- ฉันยังได้ดูโมดูล Feeds, Feeds SQL, มุมมอง XML Backend และย้ายข้อมูล แต่ไม่มีใครบอกว่าพวกเขาสามารถเชื่อมต่อ db ภายนอกกับ Views ได้ ฉันพลาดอะไรไปรึเปล่า? หนึ่งในนั้นคือทางออกที่ถูกต้องหรือไม่?
ตัวเลือกที่ 2 นั้นไม่สามารถใช้งานได้จริงเพราะมันจะส่งผลให้เกิดฐานข้อมูลขนาดใหญ่ที่มีหลายร้อยตารางที่ยากต่อการจัดการ ฉันมีความก้าวหน้าอย่างมากในการเริ่มต้นใช้งาน Drupal แต่ฉันไม่รู้สึกถึงภาระงานที่ 4, 5, หรือ 6 มีความเป็นไปได้ที่จะมีตัวเลือกแบบที่ 1 ใช้งานได้หรือไม่? หรือมีวิธีอื่นใดในการทำให้ Views ทำงานกับตารางภายนอกฐานข้อมูลไซต์โดยไม่สามารถเขียนโมดูลของตัวเองได้?
รายละเอียดเพิ่มเติมสองประการ: ตารางแรกที่ฉันต้องใช้มีขนาดใหญ่กว่า 6,000 แถวและประมาณ 20 คอลัมน์ ไม่มีเจตนาที่จะให้ผู้เยี่ยมชมเว็บไซต์เข้าถึงฐานข้อมูลยกเว้นข้อมูลที่ดึงมาจากมันสำหรับเนื้อหาของหน้า
ขอบคุณสำหรับความช่วยเหลือของคุณ.