perf: clickhouse isolation

This commit is contained in:
ryan
2026-06-19 21:31:03 +08:00
parent a98d266278
commit d0a9958711
+20 -6
View File
@@ -5,8 +5,10 @@
package migrator package migrator
import ( import (
"context"
"database/sql" "database/sql"
"embed" "embed"
"io/fs"
"log" "log"
"time" "time"
@@ -55,13 +57,25 @@ func MigrateClickHouse() {
BlockBufferSize: cfg.BlockBufferSize, BlockBufferSize: cfg.BlockBufferSize,
}) })
goose.SetBaseFS(clickhouseMigrationFS) subFS, err := fs.Sub(clickhouseMigrationFS, "goose/clickhouse")
if err := goose.SetDialect("clickhouse"); err != nil { if err != nil {
closeClickHouseDB(sqlDB) closeClickHouseDB(sqlDB)
log.Fatalf("[ClickHouse] set goose dialect failed: %v\n", err) log.Fatalf("[ClickHouse] get sub fs failed: %v\n", err)
} }
goose.SetTableName(clickhouseGooseVersionTable)
if err := goose.Up(sqlDB, clickhouseMigrationDir); err != nil { provider, err := goose.NewProvider(
"clickhouse",
sqlDB,
subFS,
goose.WithTableName(clickhouseGooseVersionTable),
goose.WithDisableGlobalRegistry(true),
)
if err != nil {
closeClickHouseDB(sqlDB)
log.Fatalf("[ClickHouse] create goose provider failed: %v\n", err)
}
if _, err := provider.Up(context.Background()); err != nil {
closeClickHouseDB(sqlDB) closeClickHouseDB(sqlDB)
log.Fatalf("[ClickHouse] goose migrate failed: %v\n", err) log.Fatalf("[ClickHouse] goose migrate failed: %v\n", err)
} }
@@ -74,4 +88,4 @@ func closeClickHouseDB(sqlDB *sql.DB) {
if err := sqlDB.Close(); err != nil { if err := sqlDB.Close(); err != nil {
log.Printf("[ClickHouse] close sql db failed: %v\n", err) log.Printf("[ClickHouse] close sql db failed: %v\n", err)
} }
} }