diff --git a/pkg/content/content.go b/pkg/content/content.go index 29abfb45e47b9551333a928caba541ee57bd7d6c..1d351e9308da0ea2c81f8afa80fb2be219c633ea 100644 --- a/pkg/content/content.go +++ b/pkg/content/content.go @@ -39,7 +39,7 @@ type Content struct { } const ( - DBVersion uint32 = 3 + DBVersion uint32 = 2 ) func (c *Content) RegisterStart(svc interface{}) { diff --git a/pkg/setup/collection.go b/pkg/setup/collection.go index bd8bea920a79af293e8403b03ca1cba5fa27d2a5..a2922a0d44a2232dafe5a07f74662873d2ff4c98 100644 --- a/pkg/setup/collection.go +++ b/pkg/setup/collection.go @@ -138,22 +138,22 @@ func (s *Setup) InstallCollection(ctx context.Context, c CollectionConfig) (setS return false, err } + if c.metadata != nil { + collection.Schema.WithMetadata(c.metadata...) + } + if exist == nil { setSchema = !collection.IsView() - exist, err = s.content.Collections.Create(ctx, collection) + _, err = s.content.Collections.Create(ctx, collection) if err != nil { return false, err } } else { - var upd bool - if c.metadata != nil { - collection.Schema.WithMetadata(c.metadata...) - err = s.checkSchemaMetadata(collection, exist) - if err != nil { - return false, err - } + if collection.Schema.Metadata != nil && exist.Schema.Metadata["extension"] != collection.Schema.Metadata["extension"] && !s.IsForce() { + return false, errors.Wrap(errors.Errorf("collection %s has the same id(%s) as extension's collection %s", exist.Name, exist.ID, collection.Name), "fail to update collection") } + var upd bool collection, upd, setSchema = c.UpdateFn(s, exist, c.collection) if upd { if err = s.content.Collections.Update(ctx, collection); err != nil { @@ -172,16 +172,6 @@ func (s *Setup) InstallCollection(ctx context.Context, c CollectionConfig) (setS return setSchema, nil } -// checkSchemaMetadata проверяет изменилось ли значение Metadata в схеме коллекции -func (s *Setup) checkSchemaMetadata(collection *collections.Collection, exist *collections.Collection) error { - if collection.Schema.Metadata != nil { - if exist.Schema.Metadata["extension"] != collection.Schema.Metadata["extension"] && !s.IsForce() { - return errors.WithHint(errors.New("fail to update collection"), "collection has the same id as extension's collection, change yours collection id") - } - } - return nil -} - func (s *Setup) CheckCollections(ctx context.Context) error { if len(s.Collections) == 0 { return nil