multiple database laravel 8

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=mydatabase

DB_USERNAME=aditya

DB_PASSWORD=aditya

   

DB_CONNECTION_SECOND=mysql

DB_HOST_SECOND=127.0.0.1

DB_PORT_SECOND=3306

DB_DATABASE_SECOND=mydatabase2

DB_USERNAME_SECOND=aditya

DB_PASSWORD_SECOND=aditya

config/database.php

<?php

  

use Illuminate\Support\Str;

  

return [

   

    'default' => env('DB_CONNECTION', 'mysql'),

   

    'connections' => [

        .....

   

        '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' => true,

            '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', '127.0.0.1'),

            'port' => env('DB_PORT_SECOND', '3306'),

            'database' => env('DB_DATABASE_SECOND', 'forge'),

            'username' => env('DB_USERNAME_SECOND', 'forge'),

            'password' => env('DB_PASSWORD_SECOND', ''),

            'unix_socket' => '',

            'charset' => 'utf8mb4',

            'collation' => 'utf8mb4_unicode_ci',

            'prefix' => '',

            'prefix_indexes' => true,

            'strict' => true,

            'engine' => null,

        ],
<?php

.....

public function up()

{

    Schema::create('blog', function (Blueprint $table) {

        $table->increments('id');

        $table->string('title');

        $table->string('body')->nullable();

        $table->timestamps();

    });

}
<?php

.....

public function up()

{

    Schema::connection('mysql2')->create('blog', function (Blueprint $table) {

        $table->increments('id');

        $table->string('title');

        $table->string('body')->nullable();

        $table->timestamps();

    });

}
<?php

   

namespace App;

  

use Illuminate\Database\Eloquent\Model;

   

class Blog extends Model

{

}
<?php

   

namespace App;

  

use Illuminate\Database\Eloquent\Model;

   

class Blog extends Model

{

    protected $connection = 'mysql2';

}
<?php

  

class BlogController extends BaseController

{

    public function getRecord()

    {

        $blogModel = new Blog;

        $find = $blogModel->find(1);

        return $find;

    }

}
<?php

  

class BlogController extends BaseController

{

    public function getRecord()

    {

        $blogModel = new Blog;

        $blogModel->setConnection('mysql2');

        $find = $blogModel->find(1);

        return $find;

    }

}
$blogs = DB::table("blog")->get();

print_r($blogs);
$blogs = DB::connection('mysql2')->table("blog")->get();

print_r($blogs);

Leave a Reply