O laravel por padrao nos permite configurar 1 banco de dados.
Mas se quisermos usar 2 ou mais simultaneamente?!?
Como fazer isso, é o que apresentaremos aqui.
Fase 1 - configuração do acesso ao segundo banco.
no nosso .env
vamos adicionar as configs de conexão do nosso segundo banco:
// .env
// exemplo da conexao defaut
DB_CONNECTION=mysql
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=lara10_estudos
DB_USERNAME=sail
DB_PASSWORD=password
// exemplo da conexão secundária
DB_BANCO2_CONNECTION=mysql
DB_BANCO2_HOST=mariadb
DB_BANCO2_PORT=3306
DB_BANCO2_DATABASE=banco2
DB_BANCO2_USERNAME=sail
DB_BANCO2_PASSWORD=password
no nosso /config/database.php
vamos adicionar um novo array de configuração de banco, e nomeá-lo como for de interesse.
// /config/database.php
return [
// configuração do banco corrente
'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'),
]) : [],
],
// configuração do novo banco
'banco2' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_BANCO2_HOST', '127.0.0.1'),
'port' => env('DB_BANCO2_PORT', '3306'),
'database' => env('DB_BANCO2_DATABASE', 'forge'),
'username' => env('DB_BANCO2_USERNAME', 'forge'),
'password' => env('DB_BANCO2_PASSWORD', ''),
'unix_socket' => env('DB_BANCO2_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'),
]) : [],
],
];
Fase 2 - usando o nosso segundo banco
2.1 - Em uma migration
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::connection('banco2')->create('tb_banco2_teste', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->timestamps();
});
}
public function down(): void
{
Schema::connection('banco2')->dropIfExists('tb_banco2_teste');
}
};
2.2 - Em uma model
<?php
namespace App\Models;
class teste
{
protected $fillable = [
'name'
];
protected $connection = 'banco2';
}
É isso!😎
Top comments (0)