feat: force-recreate index when schema version updated
1 file changed, 10 insertions(+), 3 deletions(-)
changed files
M internal/index/meta/meta.go → internal/index/meta/meta.go
@@ -34,8 +34,9 @@ Sources map[string]*SourceMeta } type Meta struct { - root *file.Root - log *log.Logger + root *file.Root + log *log.Logger + exists bool data }@@ -43,6 +44,10 @@ func (i *Meta) IsSchemaOutdated() bool { return i.SchemaVersion < CurrentSchemaVersion } +func (i *Meta) Exists() bool { + return i.exists +} + func (i *Meta) Save() error { i.SchemaVersion = CurrentSchemaVersion j, err := json.MarshalIndent(i.data, "", " ")@@ -54,6 +59,8 @@ err = i.root.WriteFile(BaseName, j, 0o600) if err != nil { return fault.Wrap(err, fmsg.With("could not save index metadata")) } + + i.exists = true return nil }@@ -112,7 +119,7 @@ }, }, nil } -func Open(root *file.Root, log *log.Logger) (*Meta, error) { +func OpenOrCreate(root *file.Root, log *log.Logger) (*Meta, error) { exists, err := root.Exists(BaseName) if err != nil { return nil, fault.Wrap(err, fmsg.With("could not check for existence of index metadata"))