Cara Setting Multiple Koneksi Database dan Contoh Penerapan Querynya

Dalam artikel kali ini saya akan mengangkat sebuah tulisan tentang bagaimana cara membuat koneksi database multiple pada laravel yang dimana secara default laravel ke database untuk contoh terkoneksi ke database MySQL hanya single koneksi, ada moment dimana kita butuh double koneksi database. 

Untuk tahap awal di .env bisa kalian lihat contohnya.

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

DB_CONNECTION_SECOND=mysql
DB_HOST_SECOND=127.0.0.1
DB_PORT_SECOND=3306
DB_DATABASE_SECOND=database2
DB_USERNAME_SECOND=root
DB_PASSWORD_SECOND=

Setelah pada environment ditambahkan settingan, di config/database.php kalian tambahkan koneksi ke dua dibawah koneksi MySQL yang pertama.

.......
'mysql' => [
    'driver' => 'mysql',
    'url' => env('DATABASE_URL'),
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => false,
    'engine' => null,
    'options' => extension_loaded('pdo_mysql') ? array_filter([
        PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
    ]) : [],
],
'mysql2' => [
    'driver'    => env('DB_CONNECTION_SECOND'),
    'host'      => env('DB_HOST_SECOND'),
    'port'      => env('DB_PORT_SECOND'),
    'database'  => env('DB_DATABASE_SECOND'),
    'username'  => env('DB_USERNAME_SECOND'),
    'password'  => env('DB_PASSWORD_SECOND'),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => false,
    'engine' => null,
    'options' => extension_loaded('pdo_mysql') ? array_filter([
        PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
    ]) : [],
],
........

Untuk contoh config diatas kita tandai koneksi defaultnya namanya mysql sedangkan koneksi yang kedua kita kasih nama mysql2, untuk contoh querynya misalkan kita akan query SELECT dari table users tapi tabel users ini ada di default mysq maka querynya ya masih seperti biasa.

DB::table('users')->get()

Untuk contoh query ke koneksi mysql2 contohnya.

DB::connection('mysql2')
    ->table('karyawan')
    ->get();

Demikianlah artikel pendek tentang multiple koneksi Database MySQL di Laravel, semoga bermanfaat ya teman - teman.

Related Articles

Comments