This commit is contained in:
Lunny Xiao 2025-07-27 11:20:08 -07:00
parent d81dd4a537
commit 8002e4d98a
No known key found for this signature in database
GPG Key ID: C3B7C91B632F738A
1 changed files with 41 additions and 3 deletions

View File

@ -11,6 +11,7 @@ import (
"xorm.io/xorm/schemas" "xorm.io/xorm/schemas"
) )
// Test Sync with unique index and normal index
type TestSync1 struct { type TestSync1 struct {
Id int64 Id int64
ClassId int64 `xorm:"index"` ClassId int64 `xorm:"index"`
@ -29,9 +30,46 @@ func (TestSync2) TableName() string {
return "test_sync" return "test_sync"
} }
func TestSync(t *testing.T) { func Test_SyncChangeIndexType(t *testing.T) {
assert.NoError(t, testEngine.Sync(new(TestSync1))) assert.NoError(t, testEngine.Sync(new(TestSync1)))
tables, err := testEngine.DBMetas()
assert.NoError(t, err)
var testTable *schemas.Table
for _, table := range tables {
if table.Name == "test_sync" {
testTable = table
break
}
}
assert.NotNil(t, testTable)
assert.Len(t, testTable.Columns(), 2)
assert.Len(t, testTable.Indexes, 1)
index := testTable.Indexes["class_id"]
assert.NotNil(t, index)
assert.Len(t, index.Cols, 1)
assert.Equal(t, "class_id", index.Cols[0])
assert.Equal(t, schemas.IndexType, index.Type)
assert.NoError(t, testEngine.Sync(new(TestSync2))) assert.NoError(t, testEngine.Sync(new(TestSync2)))
tables, err = testEngine.DBMetas()
assert.NoError(t, err)
testTable = nil
for _, table := range tables {
if table.Name == "test_sync" {
testTable = table
break
}
}
assert.NotNil(t, testTable)
assert.Len(t, testTable.Columns(), 2)
assert.Len(t, testTable.Indexes, 1)
index = testTable.Indexes["class_id"]
assert.NotNil(t, index)
assert.Len(t, index.Cols, 1)
assert.Equal(t, "class_id", index.Cols[0])
assert.Equal(t, schemas.UniqueType, index.Type)
} }
// Test Sync with varchar size changed // Test Sync with varchar size changed
@ -183,7 +221,7 @@ func Test_SyncVarcharDefaultChange(t *testing.T) {
} }
assert.NotNil(t, testTable) assert.NotNil(t, testTable)
assert.Len(t, testTable.Columns(), 2) assert.Len(t, testTable.Columns(), 2)
assert.Equal(t, "1", testTable.GetColumn("name").Default) assert.Equal(t, "'1'", testTable.GetColumn("name").Default)
assert.NoError(t, testEngine.Sync(new(TestSync8))) assert.NoError(t, testEngine.Sync(new(TestSync8)))
@ -198,5 +236,5 @@ func Test_SyncVarcharDefaultChange(t *testing.T) {
} }
assert.NotNil(t, testTable) assert.NotNil(t, testTable)
assert.Len(t, testTable.Columns(), 2) assert.Len(t, testTable.Columns(), 2)
assert.Equal(t, "2", testTable.GetColumn("name").Default) assert.Equal(t, "'2'", testTable.GetColumn("name").Default)
} }