데이터베이스 연결정보를 환경변수에 추가하기
먼저 여러 데이터베이스에 연결을 하기 해서는 연결하려는 여러 데이터베이스 정보를 알고 있어야 겠죠? 그렇다면 이 정보들을 어디에 저장하는가하면 바로 ".env" 파일에 저장을 합니다.
기본적으로 입력 되어있는 정보 밑에 데이터베이스 정보를 새로 추가하면 되겠습니다.
// .env APP_ENV=local APP_KEY= APP_DEBUG=true APP_LOG_LEVEL=debug APP_URL=http://localhost DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret ... //////////////////// DB1_HOST=127.1.2.3 DB1_PORT=4010 DB1_DATABASE=newDB DB1_USERNAME=newID DB1_PASSWORD=newPW DB2_HOST=127.4.5.6 DB2_PORT=4411 ...
데이터베이스 설정 파일에 연결정보 추가하기
데이터베이스 설정파일(database.php)에 DB를 추가합니다.
// config/database.php 'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'database' => env('DB_DATABASE', database_path('database.sqlite')), 'prefix' => '', ], 'mysql' => [ 'driver' => 'mysql', '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', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ], // DB 추가 'newDB1' => [ 'driver' => 'mysql', 'host' => env('DB1_HOST', '127.0.0.1'), 'port' => env('DB1_PORT', '3306'), 'database' => env('DB1_DATABASE', 'forge'), 'username' => env('DB1_USERNAME', 'forge'), 'password' => env('DB1_PASSWORD', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ], 'newDB2' => [ 'driver' => 'mysql', 'host' => env('DB2_HOST', '127.0.0.1'), 'port' => env('DB2_PORT', '3306'), 'database' => env('DB2_DATABASE', 'forge'), 'username' => env('DB2_USERNAME', 'forge'), 'password' => env('DB2_PASSWORD', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ] // !-- DB 추가 끝 ] ...
Model에서의 사용 예
위에서 추가한 데이터베이스의 테이블 정보를 가져오는 Model을 생성해보겠습니다.
// php artisan make:model NewModel namespace App; use Illuminate\Database\Eloquent\Model; class NewModel extends Model { protected $connection = 'newDB1'; protected $table = 'new_table'; }
'PHP' 카테고리의 다른 글
[Laravel] 마이그레이션 에러(Unknown database type enum requested, Doctrine\DBAL\Platforms\MySqlPlatform may not support it.) 해결 방법 (0) | 2017.12.08 |
---|---|
[Laravel 5.4] 패스워드 변경 후 로그인 유지 하는 방법 (2) | 2017.07.03 |
[PHP] Laravel 5, Custom Exception 사용하기 (1) | 2017.02.12 |
[PHP]라인 봇(LINE BOT) 사용을 위한 Webhook 기능 사용하기 (0) | 2016.11.16 |
[PHP] password_hash 패스워드 함수 사용하기. (0) | 2016.07.21 |