Тут і в інших місцях багато дискусій щодо використання зовнішніх баз даних в 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 Reports » здавався робити саме те, що мені потрібно, але коли я встановив його, я не міг змусити його працювати. Я подав випуск 2475645 і не можу зробити там більше, якщо не буде вирішено цю проблему.
- Напишіть мій власний модуль, щоб надати Views доступ до додаткової бази даних, визначеної у "settings.php".
- Встановіть Drupal 6 за допомогою Майстра таблиць і використовуйте це, щоб отримати представлення даних, щоб побачити мою зовнішню таблицю, а потім якось взяти результат цього і помістити його в Drupal 7. (Це було запропоновано в деяких публікаціях.)
- Виконайте процедуру в https://drupal.stackexchange.com/a/3321/45991 , яка починається з встановлення патча і, здається, також потребує створення власного модуля.
- Я також переглянув модулі канали, канали SQL, Backend перегляду XML та міграцію, але жоден з них не говорить про те, що вони можуть підключити зовнішній db до Views. Я щось пропускаю? Є одне з них правильне рішення?
Варіант 2 не є практичним, оскільки це призведе до величезної бази даних із сотнями таблиць, якими було б дуже важко керувати. Я досягла великого прогресу в тому, щоб розпочати роботу над Drupal, але мені не здається завданням 4, 5 або 6. Чи є можливість щось подібне до варіанту 1? Або є якийсь інший спосіб заставити Views для роботи з таблицею поза базою даних сайту, не маючи змоги написати власний модуль?
Дві додаткові деталі: Перша таблиця, з якою мені потрібно працювати, досить велика, понад 6000 рядків і близько 20 стовпців. Немає наміру надати відвідувачам сайту доступ до бази даних, за винятком інформації, отриманої з нього для вмісту сторінки.
Спасибі за вашу допомогу.