From b462eded54db6c83c35e0d950391a9d2b7ea55f6 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Mon, 5 Mar 2018 18:01:47 +0800 Subject: [PATCH] fix sync bug (#857) --- session_schema.go | 6 ++++++ session_schema_test.go | 14 ++++++++++++++ 2 files changed, 20 insertions(+) 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))) + } +}