C'è molta discussione qui e in altri luoghi sull'uso di database esterni in Drupal. Quello che ho capito è che:
- Il modo migliore per lavorare con i dati in una tabella di database è utilizzare il modulo Views. L'ho installato e ho iniziato a usarlo e ho trovato perfetto per lavorare con una tabella che ho aggiunto al database del sito.
- Il modo semplice per far funzionare Views con una tabella che non è stata creata da Drupal è con il modulo Dati. Questo modulo tratta qualsiasi tabella nel database del sito che non è in uso da Drupal come una "tabella orfana" e consente di essere "adottata" con un clic di un pulsante.
- Il modulo "Creazione guidata tabella" apparentemente fornisce un modo per farlo con tabelle che non si trovano nel database del sito. Ma quel modulo non è disponibile per Drupal 7.
- Il file "settings.php", nella sezione "Impostazioni database", contiene una documentazione dettagliata su come definire database aggiuntivi con cui il sito può lavorare. Ma quando un database viene definito in questo modo, le sue tabelle non vengono visualizzate nell'elenco delle tabelle orfane nel modulo Dati.
La modifica che ho apportato alla definizione del database nel file "settings.php" di uno dei miei siti è:
$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' => '',
), ), );
Ho una tabella che voglio usare in più di un sito nella mia installazione multi-sito. Ciò significa che ho bisogno di avere la tabella in un database accessibile a ciascun sito. Secondo la lettura che ho fatto, le mie opzioni per farlo sono:
- Meglio, se è possibile: Scopri che c'è un modo per ottenere il modulo Dati per riconoscere le tabelle nel database aggiuntivo definito in "settings.php", in modo da poterle adottare.
- Utilizzare i prefissi delle tabelle per consentire a tutti i siti di utilizzare un solo database.
- Il modulo " Forena Reports " sembrava fare esattamente ciò di cui ho bisogno, ma quando l'ho installato non sono riuscito a farlo funzionare. Ho inviato il numero 2475645 e non posso fare molto di più lì a meno che non ci sia una correzione per quel problema.
- Scrivi il mio modulo per dare a Views l'accesso al database aggiuntivo definito in "settings.php".
- Installa Drupal 6 con Creazione guidata tabella e usalo per visualizzare Views per vedere la mia tabella esterna, quindi in qualche modo prendine il risultato e inseriscilo in Drupal 7. (Questo è stato suggerito in alcuni post.)
- Seguire la procedura in https://drupal.stackexchange.com/a/3321/45991 , che inizia con l'installazione di una patch e sembra richiedere anche la creazione del mio modulo.
- Ho anche esaminato i moduli Feed, Feeds SQL, Views XML Backend e Migrate, ma nessuno di loro afferma di poter connettere un db esterno a Views. Mi sto perdendo qualcosa? Uno di questi è la soluzione giusta?
L'opzione 2 non è pratica perché si tradurrebbe in un enorme database con centinaia di tabelle che sarebbe molto difficile da gestire. Ho fatto grandi progressi per iniziare a usare Drupal, ma non mi sento all'altezza del compito di 4, 5 o 6. C'è qualche possibilità che funzioni come l'opzione 1? Oppure esiste un altro modo per far funzionare Views con una tabella esterna al database del sito senza poter scrivere il mio modulo?
Due dettagli aggiuntivi: la prima tabella con cui devo lavorare è piuttosto grande, oltre 6.000 righe e circa 20 colonne. Non vi è alcuna intenzione di dare ai visitatori del sito l'accesso al database ad eccezione delle informazioni tratte da esso per il contenuto della pagina.
Grazie per l'aiuto.