feat(core): implement cordis configuration extension and migrate all plugins

This commit is contained in:
ryan
2026-08-29 10:53:53 +08:00
parent b43c429544
commit ed8491addf
74 changed files with 1354 additions and 1145 deletions
@@ -4,6 +4,7 @@
package logstore
import (
"Wavelet/pkg/idgen"
"context"
"testing"
"time"
@@ -15,6 +16,7 @@ import (
func newTestUserAccessStore(t *testing.T) *userAccessLogGormStore {
t.Helper()
_ = idgen.Init(1)
gdb, err := gorm.Open(sqlite.Open("file:logstore-"+t.Name()+"?mode=memory&cache=shared"), &gorm.Config{})
require.NoError(t, err)
require.NoError(t, gdb.AutoMigrate(&UserAccessLog{}))
@@ -4,7 +4,6 @@
package logstore
import (
"Wavelet/pkg/config"
"Wavelet/pkg/logger"
"context"
"errors"
@@ -34,6 +33,9 @@ const resolveCacheTTL = 1 * time.Second
var (
configReader ConfigReader
defaultDBMu sync.RWMutex
defaultDB = dbNameSQLite
storeMu sync.RWMutex
active *Store
activeDB string
@@ -41,6 +43,25 @@ var (
lastResolveTime time.Time
)
// SetDefaultDatabases configures the fallback database based on database and clickhouse enablement.
func SetDefaultDatabases(dbEnabled, chEnabled bool) {
defaultDBMu.Lock()
defer defaultDBMu.Unlock()
defaultDB = dbNameSQLite
if dbEnabled {
defaultDB = dbNamePostgres
}
if chEnabled {
defaultDB = dbNameClickHouse
}
}
func getDefaultDatabase() string {
defaultDBMu.RLock()
defer defaultDBMu.RUnlock()
return defaultDB
}
// SetConfigReader 注入系统配置读取函数(bootstrap 调用,测试可注入内存实现)。
func SetConfigReader(fn ConfigReader) { configReader = fn }
@@ -169,13 +190,7 @@ func resolveDatabase(ctx context.Context) (string, error) {
resolved := v
if resolved == "" {
resolved = dbNameSQLite
if config.Config.Database.Enabled {
resolved = dbNamePostgres
}
if config.Config.ClickHouse.Enabled {
resolved = dbNameClickHouse
}
resolved = getDefaultDatabase()
}
storeMu.Lock()