在本地用Laravel做开发时,如果不想安装额外的数据库服务,使用SQLite是最轻量的选择。SQLite以单个文件存储数据,不需要启动独立进程,配置简单,非常适合快速验证想法、编写单元测试或搭建小型应用。

一、创建SQLite数据库文件
首先,在Laravel项目的database目录中创建一个SQLite数据库文件。通常命名为database.sqlite。你可以在终端执行:
touch database/database.sqlite
如果是在Windows下,也可以手动右键新建一个空文件并命名为database.sqlite。
二、修改.env配置文件
打开项目根目录下的.env文件,找到数据库相关配置,将其改为SQLite连接方式。最关键的是DB_CONNECTION和DB_DATABASE两项。
DB_CONNECTION=sqlite DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=database/database.sqlite DB_USERNAME=null DB_PASSWORD=null
注意,DB_DATABASE这里填的是相对项目根目录的路径。如果想用绝对路径,可以写成/var/www/laravel/database/database.sqlite这类形式,但要确保文件有读写权限。
三、检查config/database.php
Laravel默认的config/database.php中已经写好了sqlite连接配置,一般无需改动。核心部分如下:
// config/database.php 中的 sqlite 配置片段
'sqlite' => [
'driver' => 'sqlite',
'url' => env('DATABASE_URL'),
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],</code>如果DB_DATABASE没有设置,它会自动使用database_path('database.sqlite')作为默认文件。
四、运行迁移测试连接
配置完成后,可以执行迁移命令来确认Laravel能正常连接并操作SQLite:
php artisan migrate
若没有报错且提示创建了数据表,说明连接成功。你也可以用php artisan tinker简单写一条数据试试。
五、常见问题与建议
- 文件权限:确保运行PHP的用户对
database.sqlite有写权限,否则会报readonly错误。 - 测试环境:在
phpunit.xml中可设DB_CONNECTION=sqlite并用内存库:memory:加速测试。 - 路径坑:不要写成
DB_DATABASE=sqlite:database/database.sqlite,Laravel会自己加前缀。
使用内存数据库做测试示例
// phpunit.xml 中可添加 <env name="DB_CONNECTION" value="sqlite"/> <env name="DB_DATABASE" value=":memory:"/>
通过上述步骤,你的Laravel本地开发环境就能以最轻量的方式跑起来,不用管额外的数据库服务进程,敲命令即可迁移和读写数据。