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.
- PHP 8.3+
- Laravel 13.x
- ClickHouse server (HTTP interface, default port 8123)
composer require ariadata/laravel-clickhouseLaravel will auto-discover ClickHouseServiceProvider and register the ClickHouse facade.
php artisan vendor:publish --provider="Ariadata\LaravelClickHouse\ClickHouseServiceProvider" --tag="clickhouse-config"CLICKHOUSE_HOST=127.0.0.1
CLICKHOUSE_PORT=8123
CLICKHOUSE_USERNAME=default
CLICKHOUSE_PASSWORD=
CLICKHOUSE_DATABASE=default'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),
],
],
],<?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,
];
}
}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();Use Schema::connection('clickhouse') with the package’s blueprint helpers — see SPEC.md and tests for examples.
- Replace the Composer package with
ariadata/laravel-clickhouse. - Find/replace namespace
KundanIn\ClickHouseLaravel→Ariadata\LaravelClickHousein your app (models, facades, casts, imports). - Republish config if you reference the old provider name in docs/scripts.
composer install
composer testMIT. See LICENSE. Includes copyright of the original author; see CHANGELOG.md.
Issues and pull requests are welcome in this repository’s GitHub project.