diff --git a/sync.go b/sync.go index 9e1cb8c1..adc2d859 100644 --- a/sync.go +++ b/sync.go @@ -235,15 +235,6 @@ func (session *Session) SyncWithOptions(opts SyncOptions, beans ...interface{}) } } - if oriIndex != nil && oriIndex.Type != index.Type { - sql := engine.dialect.DropIndexSQL(tbNameWithSchema, oriIndex) - _, err = session.exec(sql) - if err != nil { - return nil, err - } - oriIndex = nil - } - if oriIndex == nil { addedNames[name] = index } diff --git a/tests/sync_test.go b/tests/sync_test.go new file mode 100644 index 00000000..dedd3343 --- /dev/null +++ b/tests/sync_test.go @@ -0,0 +1,34 @@ +// Copyright 2023 The Xorm Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package tests + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +type TestSync1 struct { + Id int64 + ClassId int64 `xorm:"index"` +} + +func (TestSync1) TableName() string { + return "test_sync" +} + +type TestSync2 struct { + Id int64 + ClassId int64 `xorm:"unique"` +} + +func (TestSync2) TableName() string { + return "test_sync" +} + +func TestSync(t *testing.T) { + assert.NoError(t, testEngine.Sync(new(TestSync1))) + assert.NoError(t, testEngine.Sync(new(TestSync2))) +}