mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-10 17:26:38 +08:00
perf: clickhouse isolation
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user