95 lines
2.0 KiB
Go
95 lines
2.0 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"flag"
|
|
"os"
|
|
|
|
logger "git.site.quack-lab.dev/dave/cylogger"
|
|
"eve-typesense-api/internal/clickhouse"
|
|
"eve-typesense-api/internal/database"
|
|
"eve-typesense-api/internal/mirror"
|
|
"eve-typesense-api/internal/typesense"
|
|
)
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
logger.InitFlag()
|
|
logger.Default = logger.Default.ToFile("eve-typesense-api.log")
|
|
|
|
// MigrateTypesense()
|
|
MigrateClickhouse()
|
|
}
|
|
|
|
func MigrateTypesense() {
|
|
if err := database.Init(); err != nil {
|
|
logger.Error("Failed to initialize database: %v", err)
|
|
os.Exit(1)
|
|
}
|
|
logger.Info("Database initialized")
|
|
|
|
if err := typesense.Init(); err != nil {
|
|
logger.Error("Failed to initialize Typesense: %v", err)
|
|
os.Exit(1)
|
|
}
|
|
logger.Info("Typesense initialized")
|
|
|
|
results := mirror.Mirror(context.Background())
|
|
|
|
successCount := 0
|
|
errorCount := 0
|
|
totalDocs := int64(0)
|
|
|
|
for _, result := range results {
|
|
if result.Error != nil {
|
|
errorCount++
|
|
logger.Error("Error mirroring %s to Typesense: %v", result.TableName, result.Error)
|
|
} else {
|
|
successCount++
|
|
totalDocs += result.Count
|
|
}
|
|
}
|
|
|
|
logger.Info("Typesense mirroring complete: %d tables, %d documents, %d errors", successCount, totalDocs, errorCount)
|
|
|
|
if errorCount > 0 {
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func MigrateClickhouse() {
|
|
if err := database.Init(); err != nil {
|
|
logger.Error("Failed to initialize database: %v", err)
|
|
os.Exit(1)
|
|
}
|
|
logger.Info("Database initialized")
|
|
|
|
if err := clickhouse.Init(); err != nil {
|
|
logger.Error("Failed to initialize ClickHouse: %v", err)
|
|
os.Exit(1)
|
|
}
|
|
logger.Info("ClickHouse initialized")
|
|
|
|
results := mirror.MirrorClickHouse(context.Background())
|
|
|
|
successCount := 0
|
|
errorCount := 0
|
|
totalRows := int64(0)
|
|
|
|
for _, result := range results {
|
|
if result.Error != nil {
|
|
errorCount++
|
|
logger.Error("Error mirroring %s to ClickHouse: %v", result.TableName, result.Error)
|
|
} else {
|
|
successCount++
|
|
totalRows += result.Count
|
|
}
|
|
}
|
|
|
|
logger.Info("ClickHouse mirroring complete: %d tables, %d rows, %d errors", successCount, totalRows, errorCount)
|
|
|
|
if errorCount > 0 {
|
|
os.Exit(1)
|
|
}
|
|
}
|