Skip to content

Commit 06a24f3

Browse files
committed
Add support for ClickHouse
Closes #156
1 parent 3a360f3 commit 06a24f3

File tree

9 files changed

+643
-21
lines changed

9 files changed

+643
-21
lines changed

.editorconfig

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
root = ture
1+
root = true
22

33
[*]
44
end_of_line = lf

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ db_sqlite:
4343
sqlite3 $(PWD)/testdata/testdb.sqlite3 < testdata/ddl/sqlite.sql
4444

4545
test:
46-
go test ./... -tags 'bq dynamo mariadb mongodb mssql mysql postgres redshift snowflake spanner sqlite' -coverprofile=coverage.out -covermode=count
46+
go test ./... -tags 'bq clickhouse dynamo mariadb mongodb mssql mysql postgres redshift snowflake spanner sqlite' -coverprofile=coverage.out -covermode=count
4747

4848
test-no-db:
4949
go test ./... -coverprofile=coverage.out -covermode=count

datasource/datasource.go

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/k1LoW/go-github-client/v58/factory"
1515
"github.com/k1LoW/tbls/config"
1616
"github.com/k1LoW/tbls/drivers"
17+
"github.com/k1LoW/tbls/drivers/clickhouse"
1718
"github.com/k1LoW/tbls/drivers/mariadb"
1819
"github.com/k1LoW/tbls/drivers/mssql"
1920
"github.com/k1LoW/tbls/drivers/mysql"
@@ -124,6 +125,9 @@ func Analyze(dsn config.DSN) (*schema.Schema, error) {
124125
case "snowflake":
125126
s.Name = splitted[2]
126127
driver = snowflake.New(db)
128+
case "clickhouse":
129+
s.Name = splitted[1]
130+
driver = clickhouse.New(db)
127131
default:
128132
return s, errors.Errorf("unsupported driver '%s'", u.Driver)
129133
}

docker-compose.yml

+13
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,16 @@ services:
7070
- ./testdata/ddl/mongo:/docker-entrypoint-initdb.d
7171
ports:
7272
- "27017:27017"
73+
clickhouse:
74+
image: clickhouse/clickhouse-server:24.4
75+
restart: always
76+
environment:
77+
- CLICKHOUSE_DB=testdb
78+
- CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1
79+
volumes:
80+
- ./testdata/ddl/clickhouse:/docker-entrypoint-initdb.d
81+
healthcheck:
82+
test: wget --no-verbose --tries=1 --spider http://localhost:8123/?query=SELECT%201 || exit 1
83+
ports:
84+
- "8123:8123"
85+
- "9000:9000"

0 commit comments

Comments
 (0)