简介
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 后,在同一请求内写入后的读取会固定使用写连接。
Pooled PostgreSQL 连接
当你使用 PgBouncer 之类以事务模式提供连接池的托管 PostgreSQL 服务时,请配置pooled 与 direct 选项。
pooled 后,Laravel 会自动进行路由分派。
如果在应用代码中希望显式使用 direct 连接,请在连接名上追加
::direct 后缀。
多数据库连接
你可以在config/database.php 中定义多个连接,并通过 DB::connection() 进行切换。
执行 SQL 查询
DB 门面按不同的查询类型提供了专用方法。
查询监听
如果要跟踪已执行的 SQL,请在服务提供者的boot() 中注册 DB::listen()。
事务
如果需要将多个更新作为一个单元处理,请使用DB::transaction()。
一旦发生异常,Laravel 会自动回滚。
attempts。
beginTransaction / rollBack / commit。
下一步
Query Builder
学习如何借助连接配置安全地构建查询。
Migrations
学习如何对已连接数据库的表结构进行版本管理。
Seeding
学习如何以可复现的方式填充开发与测试数据。