gumphp/laravel-duckdb

A DuckDB based Eloquent model and Query builder for Laravel

Installs: 10

Dependents: 1

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/gumphp/laravel-duckdb

v1.0.3 2025-10-30 07:47 UTC

This package is auto-updated.

Last update: 2025-10-30 08:21:54 UTC


README

这是一个用于 Laravel 的 DuckDB 数据库驱动,让你可以在 Laravel 应用中像使用 MySQL 或 PostgreSQL 一样简单地使用 DuckDB。

特性

  • 支持 Laravel 数据库连接管理
  • 支持查询构建器 (Query Builder)
  • 支持 Schema 构建器 (Schema Builder)
  • 支持 Eloquent ORM(有限支持)
  • 与 Laravel 的数据库迁移系统集成

安装

  1. 安装 DuckDB PHP 扩展: https://github.com/fnvoid64/php-duckdb

  2. 安装 composer 包:

    composer require gumphp/laravel-duckdb

配置

config/database.php 中添加 DuckDB 连接配置:

'duckdb' => [
    'driver' => 'duckdb',
    'database' => env('DUCKDB_DATABASE', ':memory:'),
    'prefix' => '',
    'config' => [
        'threads' => env('DUCKDB_THREADS', 4),
    ],
],

.env 文件中设置:

DUCKDB_DATABASE=/path/to/your/database.db
DUCKDB_THREADS=4

使用

基本查询

// 使用查询构建器
$users = DB::connection('duckdb')->table('users')->get();

// 插入数据
DB::connection('duckdb')->table('users')->insert([
    ['name' => 'John Doe', 'email' => 'john@example.com'],
    ['name' => 'Jane Smith', 'email' => 'jane@example.com']
]);

// 更新数据
DB::connection('duckdb')->table('users')
    ->where('name', 'John Doe')
    ->update(['email' => 'john.doe@example.com']);

// 删除数据
DB::connection('duckdb')->table('users')
    ->where('name', 'Jane Smith')
    ->delete();

Schema 操作

// 创建表
Schema::connection('duckdb')->create('users', function ($table) {
    $table->string('name');
    $table->string('email');
});

// 删除表
Schema::connection('duckdb')->dropIfExists('users');

注意事项

在生产环境中,建议将 DuckDB 数据库文件存储在持久化存储中,而不是使用内存数据库。

在 webman 中使用

https://github.com/gumphp/webman-duckdb

许可证

MIT