はじめに
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 facadeはクエリ種別ごとに専用メソッドを持ちます。
クエリリスニング
実行されたSQLを追跡したいときは、Service Providerのboot() で DB::listen() を登録してください。
transaction
複数の更新を1つの単位として扱うならDB::transaction() を使ってください。
例外が発生するとLaravelが自動でロールバックします。
attempts を指定できます。
beginTransaction / rollBack / commit を使ってください。
次のステップ
Query Builder
接続設定を使って安全にクエリを組み立てる方法を学びます。
Migrations
接続したデータベースのスキーマをバージョン管理する方法を学びます。
Seeding
開発・テスト用データを再現可能な形で投入する方法を学びます。