簡介
Laravel 官方支援下列資料庫:- MySQL / MariaDB
- PostgreSQL
- SQLite
- SQL Server
本頁著重於資料庫連線的前提。實務查詢請參閱 Query Builder,Schema 管理請見 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
若要把多個更新視為一個單元,可使用DB::transaction()。
發生例外時 Laravel 會自動 rollback。
attempts。
beginTransaction / rollBack / commit。
下一步
Query Builder
學習如何在連線設定之上安全地組建查詢。
Migrations
學習如何對已連線的資料庫 schema 進行版本控管。
Seeding
學習如何以可重現的方式匯入開發 / 測試用資料。