简介
Laravel 中连接不同类型的数据库,对数据库进行增删改查操作都很简单,不论使用原生 SQL、还是查询构建器,还是 Eloquent ORM。
目前,Laravel 支持四种类型的数据库系统:
- MySQL
- Postgres
- SQLite
- SQL Server
配置
应用的数据库配置位于 config/database.php 文件。
需要注意的是:和运行环境相关的数据库配置在 .env 环境变量配置文件中。
.env 文件只会存在于本地的开发环境,禁止将其提交到版本库或线上环境。
这样,对于本地的开发环境,数据库配置文件 config/database.php 中的数据库相关配置就会随着 .env 文件中的对应配置项的改变而改变。而线上的生产环境中并没有 .env 文件,这样生产环境的数据库配置完全由 config/database.php 来决定。这也轻松实现了不同环境的不同配置。
在 config/database.php 文件中,可以定义所有的数据库连接,并指定哪个连接是默认连接。该文件中提供了所有支持数据库系统的配置示例。
默认情况下,Laravel 使用 MySQL 作为数据库引擎,并且示例配置已经为 Laravel Homestead 环境做好了设置(意思是说,如果你是用 Homestead 作为开发环境,就可以实现零配置使用),当然,你也可以按照需要为本地的数据库修改该配置(在 .env 中修改数据库配置)。
SQLite 配置
在项目根目录下使用 touch database/database.sqlite 命令创建好新的 SQLite 数据库之后,就可以使用数据库绝对路径配置环境变量指向这个新创建的数据库:
DB_CONNECTION=sqlite
DB_DATABASE=/absolute/path/to/database.sqlite
SQLite 是一个轻量级的、遵守 ACID 标准的关系型数据库,它包含在一个相对小的 C 程序库中。与许多其它数据库管理系统不同,SQLite 不是一个客户端/服务器结构的数据库引擎,而是被集成在用户程序中。作为嵌入式数据库,是应用程序(如网页浏览器)在本地/客户端存储数据的常见选择。更多关于 SQLite 的信息请查看其官网:http://www.sqlite.org/index.html
读写分离
如果你希望使用一个数据库连接做查询,另一个数据库连接做插入、更新和删除,Laravel 中实现这种读写分离非常简单,不管你用的是原生 SQL,还是查询构建器,还是 Eloquent ORM,只要配置正确,合适的连接总是会被使用。