feat: add library elements to dash service (#114016)
This commit is contained in:
@@ -9,8 +9,8 @@ import (
|
||||
)
|
||||
|
||||
// Initialize provides the migrator singleton with required dependencies and builds the map of migrations.
|
||||
func Initialize(dsIndexProvider schemaversion.DataSourceIndexProvider) {
|
||||
migratorInstance.init(dsIndexProvider)
|
||||
func Initialize(dsIndexProvider schemaversion.DataSourceIndexProvider, leIndexProvider schemaversion.LibraryElementIndexProvider) {
|
||||
migratorInstance.init(dsIndexProvider, leIndexProvider)
|
||||
}
|
||||
|
||||
// GetDataSourceIndexProvider returns the datasource index provider instance that was initialized.
|
||||
@@ -20,12 +20,20 @@ func GetDataSourceIndexProvider() schemaversion.DataSourceIndexProvider {
|
||||
return migratorInstance.dsIndexProvider
|
||||
}
|
||||
|
||||
// GetLibraryElementIndexProvider returns the library element index provider instance that was initialized.
|
||||
func GetLibraryElementIndexProvider() schemaversion.LibraryElementIndexProvider {
|
||||
// Wait for initialization to complete
|
||||
<-migratorInstance.ready
|
||||
return migratorInstance.leIndexProvider
|
||||
}
|
||||
|
||||
// ResetForTesting resets the migrator singleton for testing purposes.
|
||||
func ResetForTesting() {
|
||||
migratorInstance = &migrator{
|
||||
migrations: map[int]schemaversion.SchemaVersionMigrationFunc{},
|
||||
ready: make(chan struct{}),
|
||||
dsIndexProvider: nil,
|
||||
leIndexProvider: nil,
|
||||
}
|
||||
initOnce = sync.Once{}
|
||||
}
|
||||
@@ -48,12 +56,14 @@ type migrator struct {
|
||||
ready chan struct{}
|
||||
migrations map[int]schemaversion.SchemaVersionMigrationFunc
|
||||
dsIndexProvider schemaversion.DataSourceIndexProvider
|
||||
leIndexProvider schemaversion.LibraryElementIndexProvider
|
||||
}
|
||||
|
||||
func (m *migrator) init(dsIndexProvider schemaversion.DataSourceIndexProvider) {
|
||||
func (m *migrator) init(dsIndexProvider schemaversion.DataSourceIndexProvider, leIndexProvider schemaversion.LibraryElementIndexProvider) {
|
||||
initOnce.Do(func() {
|
||||
m.dsIndexProvider = dsIndexProvider
|
||||
m.migrations = schemaversion.GetMigrations(dsIndexProvider)
|
||||
m.leIndexProvider = leIndexProvider
|
||||
m.migrations = schemaversion.GetMigrations(dsIndexProvider, leIndexProvider)
|
||||
close(m.ready)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user