소개
Laravel은 다음 데이터베이스를 공식 지원합니다.- MySQL / MariaDB
- PostgreSQL
- SQLite
- SQL Server
이 페이지는 데이터베이스 접속의 전제를 다룹니다. 실용적인 쿼리는 Query Builder, 스키마 관리는 Migrations, 초기 데이터 투입은 Seeding을 참조해 주세요.
설정
데이터베이스 설정은config/database.php에 통합되어 있습니다.
여러분은 default에서 기본 접속명을 선택하고, connections에서 접속별 상세를 정의합니다.
.env에는 최소한 다음을 설정해 주세요.
DB_CONNECTION=sqlite와 DB_DATABASE의 경로를 설정합니다.
읽기·쓰기 접속 분리
읽기(SELECT)와 쓰기(INSERT / UPDATE / DELETE)를 별도의 호스트로 분리하려면 동일 접속 내에서 read와 write를 설정해 주세요.
sticky를 true로 하면 동일 요청 내에서 쓰기 후의 읽기가 write 접속으로 고정됩니다.
Pooled PostgreSQL 접속
PgBouncer 같은 트랜잭션 모드 접속 풀링을 제공하는 매니지드 PostgreSQL 서비스를 사용하는 경우,pooled 옵션과 direct 옵션을 설정해 주세요.
pooled를 활성화하면 Laravel이 자동으로 배분을 수행합니다.
애플리케이션 코드 내에서 명시적으로 direct 접속을 사용하고 싶은 경우, 접속 이름에
::direct 접미사를 붙여 주세요.
다중 데이터베이스 접속
여러분은config/database.php에 접속을 여러 개 정의하고, DB::connection()으로 전환할 수 있습니다.
SQL 쿼리 실행
DB 파사드는 쿼리 종류별로 전용 메서드를 가지고 있습니다.
쿼리 리스닝
실행된 SQL을 추적하고 싶을 때는 Service Provider의boot()에서 DB::listen()을 등록해 주세요.
transaction
여러 갱신을 하나의 단위로 다루려면DB::transaction()을 사용해 주세요.
예외가 발생하면 Laravel이 자동으로 롤백합니다.
attempts를 지정할 수 있습니다.
beginTransaction / rollBack / commit을 사용해 주세요.
다음 단계
Query Builder
접속 설정을 사용해 안전하게 쿼리를 조립하는 방법을 배웁니다.
Migrations
접속된 데이터베이스의 스키마를 버전 관리하는 방법을 배웁니다.
Seeding
개발·테스트용 데이터를 재현 가능한 형태로 투입하는 방법을 배웁니다.