Há muita discussão aqui e em outros lugares sobre o uso de bancos de dados externos no Drupal. O que eu descobri disso é:
- A melhor maneira de trabalhar com dados em uma tabela de banco de dados é usar o módulo Views. Instalei isso e comecei a usá-lo e achei ótimo trabalhar com uma tabela que adicionei ao banco de dados do site.
- A maneira mais fácil de fazer com que o Views funcione com uma tabela que não foi criada pelo Drupal é com o módulo Dados. Este módulo trata qualquer tabela no banco de dados do site que não seja usada pelo Drupal como uma "tabela órfã" e permite que ela seja "adotada" com o clique de um botão.
- O módulo "Assistente de tabela" aparentemente fornece uma maneira de fazer isso com tabelas que não estão no banco de dados do site. Mas esse módulo não está disponível para o Drupal 7.
- O arquivo "settings.php", na seção "Configurações do banco de dados", possui documentação detalhada sobre como definir bancos de dados adicionais com os quais o site pode trabalhar. Mas quando um banco de dados é definido dessa maneira, suas tabelas não aparecem na lista de tabelas órfãs no módulo Dados.
A alteração que fiz na definição do banco de dados no arquivo "settings.php" de um dos meus sites é:
$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' => '',
), ), );
Eu tenho uma tabela que quero usar em mais de um site na minha instalação de vários sites. Isso significa que eu preciso ter a tabela em um banco de dados acessível a cada site. De acordo com a leitura que fiz, minhas opções para fazer isso são:
- Melhor, se possível: Descubra que existe uma maneira de fazer com que o módulo Data reconheça tabelas no banco de dados adicional definido em "settings.php", para que possa adotá-las.
- Use prefixos de tabela para permitir que todos os sites usem um banco de dados.
- O módulo “ Forena Reports ” parecia fazer exatamente o que eu precisava, mas quando o instalei, não consegui fazê-lo funcionar. Enviei a edição 2475645 e não posso fazer muito mais a menos que haja uma correção para esse problema.
- Escreva meu próprio módulo para dar ao Views acesso ao banco de dados adicional definido em "settings.php".
- Instale o Drupal 6 com o Assistente de tabela e use-o para obter Views para ver minha tabela externa e, de alguma forma, pegue o resultado disso e coloque-o no Drupal 7. (Isso foi sugerido em algumas postagens).
- Siga o procedimento em https://drupal.stackexchange.com/a/3321/45991 , que começa com a instalação de um patch e parece exigir também a criação do meu próprio módulo.
- Também observei os módulos Feeds, Feeds SQL, Views XML Backend e Migrate, mas nenhum deles diz que pode conectar um banco de dados externo ao Views. Estou esquecendo de algo? Um deles é a solução certa?
A opção 2 não é prática porque resultaria em um enorme banco de dados com centenas de tabelas que seriam muito difíceis de gerenciar. Eu tenho feito grandes progressos ao iniciar o Drupal, mas não sinto a tarefa de 4, 5 ou 6. Existe alguma possibilidade de algo como a opção 1 funcionar? Ou existe outra maneira de fazer com que o Views funcione com uma tabela fora do banco de dados do site sem poder escrever meu próprio módulo?
Dois detalhes adicionais: A primeira tabela com a qual preciso trabalhar é bastante grande, com mais de 6.000 linhas e cerca de 20 colunas. Não há intenção de dar aos visitantes acesso ao site no banco de dados, exceto pelas informações extraídas dele para o conteúdo da página.
Obrigado pela ajuda.