Drupalでの外部データベースの使用については、ここや他の場所で多くの議論があります。それから私が理解したことは:
- データベーステーブルのデータを操作する最良の方法は、Viewsモジュールを使用することです。これをインストールして使い始めたところ、サイトのデータベースに追加したテーブルを操作するのに最適です。
- Drupalで作成されていないテーブルをビューで機能させる簡単な方法は、Dataモジュールを使用することです。このモジュールは、Drupalで使用されていないサイトデータベース内のテーブルを「孤立したテーブル」として扱い、ボタンをクリックするだけで「採用」できるようにします。
- モジュール「テーブルウィザード」は明らかに、サイトのデータベースにないテーブルでそれを行う方法を提供します。ただし、そのモジュールはDrupal 7では使用できません。
- 「データベース設定」セクションの「settings.php」ファイルには、サイトで使用できる追加のデータベースを定義する方法に関する詳細なドキュメントがあります。しかし、データベースがそのように定義されている場合、そのテーブルはDataモジュールの孤立したテーブルのリストに表示されません。
私のサイトの1つの「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」で定義された追加のデータベース内のテーブルをDataモジュールに認識させ、それらを採用できるようにする方法があることを確認してください。
- テーブルプレフィックスを使用して、すべてのサイトが1つのデータベースを使用できるようにします。
- モジュール“ Forena Reports ”は、私が必要としていることを正確に実行しているように見えましたが、インストールすると機能しませんでした。私は問題2475645を送信しましたが、その問題の修正がない限り、それ以上はできません。
- 「settings.php」で定義された追加のデータベースへのアクセスをビューに与えるために、独自のモジュールを作成します。
- テーブルウィザードでDrupal 6をインストールし、それを使用してビューに私の外部テーブルを表示させ、どういうわけかその結果を取得してDrupal 7に入れます(これはいくつかの投稿で提案されています)。
- https://drupal.stackexchange.com/a/3321/45991の手順に従います。これは、パッチのインストールから始まり、独自のモジュールを作成する必要があるようです。
- Feeds、Feed SQL、Views XML Backend、Migrateの各モジュールも確認しましたが、外部dbをViewsに接続できるとは誰も言っていません。何か不足していますか?それらの1つは正しい解決策ですか?
オプション2は、管理が非常に困難な数百のテーブルを含む巨大なデータベースになるため、実用的ではありません。私はDrupalの使用を開始するのに大きな進歩を遂げていますが、4、5、または6のタスクに満足できません。オプション1のようなものが機能する可能性はありますか?または、独自のモジュールを記述せずに、ビューがサイトデータベースの外部のテーブルを操作できるようにする他の方法はありますか?
さらに2つの詳細:最初に使用する必要があるテーブルはかなり大きく、6,000行を超え、約20列です。サイトの訪問者にデータベースへのアクセスを許可するつもりはありません。
ご協力いただきありがとうございます。