ariadata/laravel-clickhouse

ClickHouse database driver for Laravel — Eloquent, query builder, and schema support (Laravel 13+).

Maintainers

Package info

github.com/ariadata/laravel-clickhouse

pkg:composer/ariadata/laravel-clickhouse

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2026-04-04 11:15 UTC

This package is auto-updated.

Last update: 2026-04-04 11:22:00 UTC


README

Latest Version on Packagist

ariadata/laravel-clickhouse — a Laravel database driver for ClickHouse with Eloquent, the query builder, schema tooling, and ClickHouse-specific query helpers.

Forked and maintained from kundan-in/clickhouse-laravel with a new vendor namespace: Ariadata\LaravelClickHouse.

Requirements

  • PHP 8.3+
  • Laravel 13.x
  • ClickHouse server (HTTP interface, default port 8123)

Installation

composer require ariadata/laravel-clickhouse

Laravel will auto-discover ClickHouseServiceProvider and register the ClickHouse facade.

Configuration

1. Publish config (optional)

php artisan vendor:publish --provider="Ariadata\LaravelClickHouse\ClickHouseServiceProvider" --tag="clickhouse-config"

2. Environment

CLICKHOUSE_HOST=127.0.0.1
CLICKHOUSE_PORT=8123
CLICKHOUSE_USERNAME=default
CLICKHOUSE_PASSWORD=
CLICKHOUSE_DATABASE=default

3. config/database.php

'connections' => [
    // ...

    'clickhouse' => [
        'driver' => 'clickhouse',
        'host' => env('CLICKHOUSE_HOST', '127.0.0.1'),
        'port' => env('CLICKHOUSE_PORT', 8123),
        'username' => env('CLICKHOUSE_USERNAME', 'default'),
        'password' => env('CLICKHOUSE_PASSWORD', ''),
        'database' => env('CLICKHOUSE_DATABASE', 'default'),
        'settings' => [
            'readonly' => env('CLICKHOUSE_READONLY', 0),
            'max_execution_time' => env('CLICKHOUSE_MAX_EXECUTION_TIME', 60),
        ],
    ],
],

Usage

Eloquent model

<?php

namespace App\Models;

use Ariadata\LaravelClickHouse\Database\ClickHouseModel;

class AnalyticsEvent extends ClickHouseModel
{
    protected $connection = 'clickhouse';

    protected $table = 'analytics_events';

    public $timestamps = false;

    protected function casts(): array
    {
        return [
            'properties' => \Ariadata\LaravelClickHouse\Casts\ClickHouseJson::class,
            'tags' => \Ariadata\LaravelClickHouse\Casts\ClickHouseArray::class,
        ];
    }
}

Facade

use Ariadata\LaravelClickHouse\Facades\ClickHouse;

$rows = ClickHouse::select('SELECT * FROM analytics_events WHERE user_id = ?', [1]);

ClickHouse::healthCheck();
ClickHouse::getServerVersion();

ClickHouse::table('analytics_events')
    ->where('created_at', '>=', today())
    ->get();

Schema (ClickHouse engines, MergeTree, etc.)

Use Schema::connection('clickhouse') with the package’s blueprint helpers — see SPEC.md and tests for examples.

Migrating from kundan-in/clickhouse-laravel

  1. Replace the Composer package with ariadata/laravel-clickhouse.
  2. Find/replace namespace KundanIn\ClickHouseLaravelAriadata\LaravelClickHouse in your app (models, facades, casts, imports).
  3. Republish config if you reference the old provider name in docs/scripts.

Development

composer install
composer test

License

MIT. See LICENSE. Includes copyright of the original author; see CHANGELOG.md.

Contributing

Issues and pull requests are welcome in this repository’s GitHub project.