CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

20 February, 2021

Multiple Databases Connecting in Laravel

 Programing Coderfunda     February 20, 2021     Laravel     No comments   

 Hi :Guys !!

    You can use this method to combine multipal databse in laravel :
  1. Install Laravel 5.8

First, let’s install Laravel 5.8 using the following command (Make sure to have composer installed in your PC) to Install Composer.

composer create-project --prefer-dist laravel/laravel multiDatabase
  1. Configure Database Details

You need to configure the databases at MYSQL and then we need to connect that database to the Laravel project (You can also use phpmyadmin to create the database). Open the .env file inside Laravel project and add the database credentials as below.

.env

DB_CONNECTION=mysql
DB_HOST='Your DB Host'
DB_PORT='Your DB Port'
DB_DATABASE='Your DB Name'
DB_USERNAME='Your DB UserName'
DB_PASSWORD='Your DB Password'

DB_CONNECTION_2=mysql
DB_HOST_2='Your DB Host'
DB_PORT_2='Your DB Port'
DB_DATABASE_2='Your DB Name'
DB_USERNAME_2='Your DB UserName'
DB_PASSWORD_2='Your DB Password'
Code language: JavaScript (javascript)

In this step, Update “config/database.php” with following code to create database connections.

config/database.php

'default' => 'mysql',
'connections' => [

'mysql' => [
'driver' => env('DB_CONNECTION'),
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
....
],

'mysql2' => [
'driver' => env('DB_CONNECTION_2'),
'host' => env('DB_HOST_2'),
'port' => env('DB_PORT_2'),
'database' => env('DB_DATABASE_2'),
'username' => env('DB_USERNAME_2'),
'password' => env('DB_PASSWORD_2'),
....
]
]
Code language: PHP (php)
  1. Create the migration file.

Go to the terminal and type the following php artisan command to generate the model and migration file.

php artisan make:migration create_multi_data_table
Code language: CSS (css)

The migration will be created under “database/migrations”. Edit the file with the code below to Create Multi Data Table.

create_multi_data_table.php

<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateMultiDataTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('multiData', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->text('detail');
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('multiData');
}
}
Code language: HTML, XML (xml)

Type the following command to run the migration.

php artisan migrate --database=mysql2
  1. Create Controller and model

If you encounter any errors, Clear the cache by running the following command.

php artisan config:cache
Code language: CSS (css)

Create the multiData model using the following command.

php artisan make:model multiData
Code language: CSS (css)

The model wil be generated in “app/multiData.php” Now, we will write the schema inside multiData.php file. Specify the “$connection” variable as shown below.

multiData.php

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;

class multiData extends Model
{
protected $connection = 'mysql2';
}
Code language: HTML, XML (xml)

Create the MultiDataController by typing the following command.

php artisan make:controller MultiDataController
Code language: CSS (css)

app/Http/Controllers/MultiDataController.php

<?php
namespace App\Http\Controllers;

use App\Student;
use Illuminate\Http\Request;

class MultiDataController extends Controller
{

public function yourMethod()
{
$multiData = new multiData;
$multiData->setConnection('mysql2');
$multi = $multiData->find(1);
return $multi;
}


}
Code language: HTML, XML (xml)

You can also define custom connection with query builder as shown below

DB::connection('mysql2')->select(...)->(...);
Code language: PHP (php)

Hope this tutorial helped you! Feel free to drop your opinion at the comment section.

  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook

Related Posts:

  • Laravel Auth Laravel Auth// How to install Auth in laravel        // With Boothstrap        composer require laravel/… Read More
  • Laravel auth check login Laravel auth check loginuse Illuminate\Support\Facades\Auth;if (Auth::check()) {    // The user is logged in...}use Auth;//find auth&n… Read More
  • Laravel auth 6  Laravel auth 6        composer require laravel/ui        php artisan ui vue --auth    &n… Read More
  • Laravel auth check login     <?php     Laravel auth check login    use Illuminate\Support\Facades\Auth;    if (Auth::check()) … Read More
  • Laravel attach onceLaravel attach once        $user->roles()->syncWithoutDetaching([1, 2, 3]);        … Read More
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Spring boot app (error: method getFirst()) failed to run at local machine, but can run on server
    The Spring boot app can run on the online server. Now, we want to replicate the same app at the local machine but the Spring boot jar file f...
  • Log activity in a Laravel app with Spatie/Laravel-Activitylog
      Requirements This package needs PHP 8.1+ and Laravel 9.0 or higher. The latest version of this package needs PHP 8.2+ and Laravel 8 or hig...
  • Laravel auth login with phone or email
          <?php     Laravel auth login with phone or email     <? php     namespace App \ Http \ Controllers \ Auth ;         use ...
  • Vue3 :style backgroundImage not working with require
    I'm trying to migrate a Vue 2 project to Vue 3. In Vue 2 I used v-bind style as follow: In Vue 3 this doesn't work... I tried a...
  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh
    I had follow these steps to install an configure firebase to my cordova project for cloud messaging. https://medium.com/@felipepucinelli/how...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh - 9/21/2024
  • pyspark XPath Query Returns Lists Omitting Missing Values Instead of Including None - 9/20/2024
  • SQL REPL from within Python/Sqlalchemy/Psychopg2 - 9/20/2024
  • MySql Explain with Tobias Petry - 9/20/2024
  • How to combine information from different devices into one common abstract virtual disk? [closed] - 9/20/2024

Laravel News

  • Validate Controller Requests with the Laravel Data Package - 5/19/2025
  • Deployer - 5/18/2025
  • Transform JSON into Typed Collections with Laravel's AsCollection::of() - 5/18/2025
  • Auto-translate Application Strings with Laratext - 5/16/2025
  • Simplify Factory Associations with Laravel's UseFactory Attribute - 5/13/2025

Copyright © 2025 CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda