diff --git a/session_schema.go b/session_schema.go index a2708b73..9d9edca8 100644 --- a/session_schema.go +++ b/session_schema.go @@ -255,6 +255,12 @@ func (session *Session) Sync2(beans ...interface{}) error { return err } + session.autoResetStatement = false + defer func() { + session.autoResetStatement = true + session.resetStatement() + }() + var structTables []*core.Table for _, bean := range beans { diff --git a/session_schema_test.go b/session_schema_test.go index 5ae587ee..712f8a04 100644 --- a/session_schema_test.go +++ b/session_schema_test.go @@ -251,3 +251,17 @@ func TestUnique_1(t *testing.T) { assert.NoError(t, testEngine.CreateTables(new(UserUnique))) assert.NoError(t, testEngine.CreateUniques(new(UserUnique))) } + +func TestSync2_2(t *testing.T) { + type TestSync2Index struct { + Id int64 + UserId int64 `xorm:"index"` + } + + assert.NoError(t, prepareEngine()) + + for i := 0; i < 10; i++ { + tableName := fmt.Sprintf("test_sync2_index_%d", i) + assert.NoError(t, testEngine.Table(tableName).Sync2(new(TestSync2Index))) + } +}