diff --git a/pkg/setup/collection.go b/pkg/setup/collection.go
index 989f70b16e4e0bd4751ce1bcdc651b65dbf761c3..bd8bea920a79af293e8403b03ca1cba5fa27d2a5 100644
--- a/pkg/setup/collection.go
+++ b/pkg/setup/collection.go
@@ -23,7 +23,7 @@ type DeleteCollectionFn func(s *Setup, col *collections.Collection) bool
 
 type CollectionConfig struct {
 	collection *collections.Collection
-	metadata   map[string]string
+	metadata   []string
 	UpdateFn   UpdateCollectionFn
 	DeleteFn   DeleteCollectionFn
 }
@@ -81,9 +81,9 @@ func UpdateExistingCollection() CollectionsOption {
 	}
 }
 
-func SetSchemaMetadata(md map[string]string) CollectionsOption {
+func SetSchemaMetadata(kv ...string) CollectionsOption {
 	return func(c *CollectionConfig) {
-		c.metadata = md
+		c.metadata = kv
 	}
 }
 
@@ -147,7 +147,7 @@ func (s *Setup) InstallCollection(ctx context.Context, c CollectionConfig) (setS
 	} else {
 		var upd bool
 		if c.metadata != nil {
-			collection.Schema.Metadata = c.metadata
+			collection.Schema.WithMetadata(c.metadata...)
 			err = s.checkSchemaMetadata(collection, exist)
 			if err != nil {
 				return false, err
@@ -172,12 +172,11 @@ 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 _, ok := collection.Schema.Metadata["extension"]; ok {
-			if _, ok := exist.Schema.Metadata["extension"]; !ok && !s.IsForce() {
-				return errors.WithHint(errors.New("fail to update collection"), "collection has the same id as extension's collection, change yours collection id")
-			}
+		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
diff --git a/pkg/setup/collection_test.go b/pkg/setup/collection_test.go
index 027c13b9ea51c566076cc8c5fa9a3f31814f4273..a3a6bafa3cfa0e874e3374c33f0e6fe94cfd8ca2 100644
--- a/pkg/setup/collection_test.go
+++ b/pkg/setup/collection_test.go
@@ -107,7 +107,7 @@ func TestSetup_InstallCollections(t *testing.T) {
 			wantErr: func(t *testing.T, err error) {
 				assert.NoError(t, err)
 			},
-			co: SetSchemaMetadata(map[string]string{"extension": "test-extension"}),
+			co: SetSchemaMetadata("extension", "test-extension"),
 		},
 		{
 			name:        "Fail to update collection with the same id",
@@ -118,7 +118,7 @@ func TestSetup_InstallCollections(t *testing.T) {
 			wantErr: func(t *testing.T, err error) {
 				assert.Error(t, err)
 			},
-			co: SetSchemaMetadata(map[string]string{"extension": "test-extension"}),
+			co: SetSchemaMetadata("extension", "test-extension"),
 		},
 		{
 			name:        "Update collection with the same id, with force",
@@ -134,7 +134,7 @@ func TestSetup_InstallCollections(t *testing.T) {
 			wantErr: func(t *testing.T, err error) {
 				assert.NoError(t, err)
 			},
-			co:    SetSchemaMetadata(map[string]string{"extension": "test-extension"}),
+			co:    SetSchemaMetadata("extension", "test-extension"),
 			force: true,
 		},
 	}