23 lines
372 B
Go
23 lines
372 B
Go
package store
|
|
|
|
import (
|
|
"context"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
type (
|
|
storeUpgrader interface {
|
|
Upgrade(context.Context, *zap.Logger) error
|
|
}
|
|
)
|
|
|
|
func Upgrade(ctx context.Context, log *zap.Logger, s Storer) error {
|
|
upgradableStore, ok := s.(storeUpgrader)
|
|
if !ok {
|
|
log.Debug("store does not support upgrades")
|
|
return nil
|
|
}
|
|
|
|
return upgradableStore.Upgrade(ctx, log)
|
|
}
|