Ada banyak diskusi di sini dan di tempat lain tentang penggunaan basis data eksternal di Drupal. Apa yang saya tahu dari itu adalah:
- Cara terbaik untuk bekerja dengan data dalam tabel database adalah dengan menggunakan modul Views. Saya telah menginstal itu dan mulai menggunakannya dan menemukan itu bagus untuk bekerja dengan tabel yang saya tambahkan ke database situs.
- Cara mudah untuk membuat Tampilan berfungsi dengan tabel yang tidak dibuat oleh Drupal adalah dengan modul Data. Modul ini memperlakukan setiap tabel dalam basis data situs yang tidak digunakan oleh Drupal sebagai "tabel yatim" dan memungkinkannya untuk "diadopsi" dengan mengklik tombol.
- Modul "Table Wizard" tampaknya menyediakan cara untuk melakukannya dengan tabel yang tidak ada dalam basis data situs. Tetapi modul itu tidak tersedia untuk Drupal 7.
- File "settings.php", di bagian "Pengaturan database", memiliki dokumentasi terperinci tentang cara menentukan basis data tambahan yang dapat digunakan oleh situs. Tetapi ketika database didefinisikan dengan cara itu, tabel-tabelnya tidak muncul dalam daftar tabel anak yatim di modul Data.
Perubahan yang saya buat ke definisi database di file "settings.php" dari salah satu situs saya adalah:
$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' => '',
), ), );
Saya memiliki tabel yang ingin saya gunakan di lebih dari satu situs dalam instalasi multi-situs saya. Ini berarti saya harus memiliki tabel dalam database yang dapat diakses oleh setiap situs. Menurut bacaan yang telah saya lakukan, pilihan saya untuk melakukan itu adalah:
- Terbaik, jika memungkinkan: Cari tahu bahwa ada cara untuk mendapatkan modul Data untuk mengenali tabel dalam database tambahan yang didefinisikan dalam "settings.php", sehingga dapat mengadopsinya.
- Gunakan awalan tabel untuk memungkinkan semua situs menggunakan satu database.
- Modul “ Forena Reports ” sepertinya melakukan apa yang saya butuhkan, tetapi ketika saya menginstalnya, saya tidak bisa membuatnya bekerja. Saya mengirimkan masalah 2475645 dan tidak bisa berbuat lebih banyak di sana kecuali ada perbaikan untuk masalah itu.
- Tulis modul saya sendiri untuk memberikan akses Views ke database tambahan yang didefinisikan dalam "settings.php".
- Instal Drupal 6 dengan Table Wizard dan gunakan itu untuk mendapatkan Tampilan untuk melihat tabel eksternal saya, dan kemudian entah bagaimana mengambil hasilnya dan memasukkannya ke Drupal 7. (Ini telah disarankan dalam beberapa posting.)
- Ikuti prosedur di https://drupal.stackexchange.com/a/3321/45991 , yang dimulai dengan memasang tambalan dan sepertinya juga perlu membuat modul saya sendiri.
- Saya juga sudah melihat modul Feeds, Feeds SQL, Views XML Backend, dan Migrasi, tetapi tidak ada yang mengatakan mereka dapat menghubungkan db eksternal ke Views. Apakah saya melewatkan sesuatu? Apakah salah satunya solusi yang tepat?
Opsi 2 tidak praktis karena akan menghasilkan basis data besar dengan ratusan tabel yang akan sangat sulit dikelola. Saya telah membuat kemajuan besar dalam memulai Drupal, tetapi saya tidak merasa puas dengan tugas 4, 5, atau 6. Apakah ada kemungkinan sesuatu seperti opsi 1 berfungsi? Atau ada cara lain untuk membuat Tampilan bekerja dengan tabel di luar basis data situs tanpa bisa menulis modul sendiri?
Dua detail tambahan: Tabel pertama yang perlu saya kerjakan cukup besar, lebih dari 6.000 baris dan sekitar 20 kolom. Tidak ada niat untuk memberikan pengunjung ke situs akses ke database kecuali untuk informasi yang diambil darinya untuk konten halaman.
Terima kasih atas bantuan Anda.