Post

Using MongoDB and MySQL in 1 Laravel Project

Banyak yang menanyakan bagaimana cara menggunakan dua database pada project laravel, tepatnya saat harus menggunakan dua model database berbeda yaitu SQL dan NoSQL. Article kali ini akan membahas bagaimana cara menggunakan dua database pada sebuah project laravel dengan contoh menggunakan MySQL dan MongoDB.

Baiklah, langsung ke pembahasan. Yang harus dilakukan pertama - tama adalah merubah default env variable yang ada pada database.php yang terdapat  pada directory Config. Contohnya adalah sebagai berikut.

'connections' => [
    'mysql' => [
        'driver' => 'mysql',
        'host' => env('MYSQL_DB_HOST', 'localhost'),
        'port' => env('MYSQL_DB_PORT', '3306'),
        'database' => env('MYSQL_DB_DATABASE', 'iranad'),
        'username' => env('MYSQL_DB_USERNAME', 'root'),
        'password' => env('MYSQL_DB_PASSWORD', 'mysql'),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

    'mongodb' => [
        'driver' => 'mongodb',
        'host' => env('MONGO_DB_HOST', 'localhost'),
        'port' => env('MONGO_DB_PORT', '27017'),
        'database' => env('MONGO_DB_DATABASE'),
        'username' => env('MONGO_DB_USERNAME'),
        'password' => env('MONGO_DB_PASSWORD'),
    ],

],

Selanjutnya, beralih ke file .env. Pada file .env kita deklarasikan variable yang kita gunakan pada database.php tadi. 

#sql 
MYSQL_DB_HOST=...
MYSQL_DB_PORT=...
MYSQL_DB_DATABASE=...
MYSQL_DB_USERNAME=...
MYSQL_DB_PASSWORD=...

# mongo
MONGO_DB_HOST=...
MONGO_DB_PORT=...
MONGO_DB_DATABASE=...
MONGO_DB_USERNAME=...
MONGO_DB_PASSWORD=...

Pada variable yang di dikelarasikan, silahkan di isi sesuai dengan configuration database anda masing - masing.

Selanjutnya anda tinggal menentukan koneksi database yang mana yang akan digunakan pada model dengan menambahkan protected connection atribute sesuai dengan nama koneksi yang sudah ditentukan di database.php. Contohnya sebagai berikut.

protected $connection = 'mongodb';

Sekian yang dapat saya sampaikan, saya harap ini bisa membantu. Terimakasih.