Today I want to show you multiple database connection. We'll learn how to use the Laravel 6 Using multiple database connection. You will find a way to implement the Laravel 6 multiple database connection example.
I will explain step by step how to use multiple Laravel 6 database connections using the ENV file. We will insert the configuration variable into the .env file and use it in the database configuration file. You can follow me, I will also learn how to use the migration, model and database query to connect multiple databases.
Since we know that at some point we will have to use multiple database connections like MySQL, Mongodb, etc. I can say that if you work on a lot of projects you may need. Then we follow the next step.
Set ENV Variable:
.env
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=mydatabase DB_USERNAME=root DB_PASSWORD=root DB_CONNECTION_SECOND=mysql DB_HOST_SECOND=127.0.0.1 DB_PORT_SECOND=3306 DB_DATABASE_SECOND=mydatabase2 DB_USERNAME_SECOND=root DB_PASSWORD_SECOND=root
Use ENV Variable:
If we now create a variable in the env file, we have to use this variable in the configuration file. So open the database.php file and add a new connection key as shown below:
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, ], .....
Use Multiple Database Connection:
Here is a simple example of how you can use a multiple connection:
Use with migration
<?php ..... public function up() { Schema::connection('mysql2')->create('blog', function (Blueprint $table) { $table->increments('id'); $table->string('title'); $table->string('body')->nullable(); $table->timestamps(); }); } .....
Use with model
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Blog extends Model { protected $connection = 'mysql2'; }
Use with Controller
<?php class BlogController extends BaseController { public function getRecord() { $blogModel = new Blog; $blogModel->setConnection('mysql2'); $find = $blogModel->find(1); return $find; } }
Use with Query Builder
$blogs = DB::table("blog")->get(); print_r($blogs); $blogs = DB::connection('mysql2')->table("blog")->get(); print_r($blogs);
I hope this tutorials: Laravel Using multiple database connection could help you ...
Thanks.
0 comments:
Post a Comment
Please don't enter any spam link in the comment box.