Logo
© 2019 - 2026 SantriKoding.

On This Page

Mobile navigation

2
0
2
SHARE

Cara Membuat Koneksi ke 2 Database di Laravel (Multi Database Connection)

like emoticon 2
love emoticon 0
insightful emoticon 0
fire emoticon 0
cheer emoticon 0
celebrate emoticon 0
Cara Membuat Koneksi ke 2 Database di Laravel (Multi Database Connection)

Halo teman-teman semuanya, dalam beberapa kasus, aplikasi membutuhkan lebih dari satu database, misalnya memisahkan data autentikasi, data transaksi, atau mengakses database lama (legacy system). Laravel sudah menyediakan fitur multiple database connection yang sangat mudah digunakan.

Berikut adalah panduan lengkap dan praktis untuk membuat koneksi dua database dalam satu proyek Laravel.

Langkah 1 - Menambahkan Konfigurasi Database di .env

Pertama, tambahkan kredensial database kedua di file .env:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database_utama
DB_USERNAME=root
DB_PASSWORD=

DB2_CONNECTION=mysql
DB2_HOST=127.0.0.1
DB2_PORT=3306
DB2_DATABASE=database_kedua
DB2_USERNAME=root
DB2_PASSWORD=

Pastikan nama variabelnya berbeda (misal: DB2_…).

Langkah 2 - Mendaftarkan Multi-Connection

Silahkan teman-teman buka file config/database.php, lalu tambahkan konfigurasi koneksi kedua:

'connections' => [

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST'),
        'port' => env('DB_PORT'),
        'database' => env('DB_DATABASE'),
        'username' => env('DB_USERNAME'),
        'password' => env('DB_PASSWORD'),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
    ],

    'mysql2' => [ // koneksi kedua
        'driver' => 'mysql',
        'host' => env('DB2_HOST'),
        'port' => env('DB2_PORT'),
        'database' => env('DB2_DATABASE'),
        'username' => env('DB2_USERNAME'),
        'password' => env('DB2_PASSWORD'),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
    ],

],

Pastikan nama koneksinya mysql2 atau sesuai kebutuhan.

Langkah 3 - Menggunakan Koneksi Kedua di Model

Jika kita ingin model tertentu menggunakan database kedua, cukup tambahkan properti $connection di dalam Model, kurang lebih seperti berikut ini:

class Produk extends Model
{
  	// properti koneksi database
    protected $connection = 'mysql2';
  
  	// properti nama table
    protected $table = 'products';
}
class User extends Model
{
  	// properti koneksi database
    protected $connection = 'mysql';
}

Pada contoh di atas, model Produk secara eksplisit menggunakan koneksi database kedua dengan mendefinisikan properti $connection bernilai mysql2. Dengan demikian, setiap query yang dijalankan melalui model Produk akan selalu mengarah ke database mysql2, dan tabel yang digunakan ditentukan secara manual melalui properti $table dengan nama products.

Sementara itu, model User akan menggunakan koneksi database default yang didefinisikan pada file config/database.php. Oleh karena itu, sebenarnya kita tidak wajib menambahkan properti $connection, karena Laravel secara otomatis akan menggunakan koneksi default (umumnya bernama mysql).

Langkah 4 - Query Builder dengan Koneksi Kedua

Jika kita ingin query tertentu saja menggunakan koneksi kedua, gunakan DB::connection():

  • Contoh Select

    $data = DB::connection('mysql2')->table('customers')->get();
    
  • Contoh Insert

    DB::connection('mysql2')->table('logs')->insert([
        'message' => 'Tes koneksi database 2',
    ]);
    
  • Contoh Raw Query

    DB::connection('mysql2')->statement('DELETE FROM temp_data');
    

Kesimpulan

Laravel membuat penggunaan multiple database connection menjadi sangat mudah. Cukup menambahkan konfigurasi di .env, mendaftarkannya di database.php, lalu gunakan pada model atau query builder.

Dengan struktur yang tepat, aplikasi dapat mengakses dua (atau lebih) database tanpa masalah, baik untuk integrasi sistem lama maupun sistem berskala besar.

Blog ini dibaca sebanyak 851 kali

Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CEO & Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komentar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami

Memuat komentar...