Graceful Light

Laravel 5.5 - Multi DB Connection

2017-07-31


여러 데이터베이스에서 데이터를 가져와야되는 경우가 있다. (마이그레이션 또는 발송 모듈 DB의 분기 등등)
라라벨에선 아주 쉽게 설정이 가능하다.

설정

config/database.php에 새로운 커넥션 정보를 넣어주자.
새 커낵션은 mysql_new 라고 이름지었다.

config/database.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
return [
...
'connections' => [
// 기본 커넥션
'mysql' => [
...
],
// 새 친구
'mysql_new' => [
'driver' => 'mysql',
'host' => '111.111.111.111',
'port' => '3306',
'database' => 'test',
'username' => 'test',
'password' => 'test1234',
'unix_socket' => '',
'charset' => 'utf8',
'collation' => 'utf8_general_ci',
'prefix' => null,
'engine' => null
],
],
];

모델

새 커넥션에 사용할 모델을 만들어주고, 모델에서 연결할 커넥션을 설정해주자.

model.php
1
2
3
4
5
6
7
8
9
<?php
...
class OldMember extends Model
{
// 커넥션 변수를 다시 설정해주면 끝
protected $connection = 'mysql_new';
protected $table = 'test';
...
}

사용

기존 모델 사용법과 똑같다. 아주 간단하다.

🍺

Buy me a beer 🍗

공유하려면 QR코드를 스캔해주세요