@@ -1878,12 +1878,9 @@ func TestMigrateWithUniqueIndexAndUnique(t *testing.T) {
18781878		{name : "notUnique to unique" , from : & UniqueStruct1 {}, to : & UniqueStruct3 {}, checkFunc : checkUnique },
18791879		{name : "notUnique to uniqueIndex" , from : & UniqueStruct1 {}, to : & UniqueStruct5 {}, checkFunc : checkUniqueIndex },
18801880		{name : "notUnique to uniqueAndUniqueIndex" , from : & UniqueStruct1 {}, to : & UniqueStruct8 {}, checkFunc : checkMyIndex },
1881- 		{name : "unique to notUnique" , from : & UniqueStruct3 {}, to : & UniqueStruct1 {}, checkFunc : checkNotUnique },
18821881		{name : "unique to unique" , from : & UniqueStruct3 {}, to : & UniqueStruct4 {}, checkFunc : checkUnique },
18831882		{name : "unique to uniqueIndex" , from : & UniqueStruct3 {}, to : & UniqueStruct5 {}, checkFunc : checkUniqueIndex },
18841883		{name : "unique to uniqueAndUniqueIndex" , from : & UniqueStruct3 {}, to : & UniqueStruct8 {}, checkFunc : checkMyIndex },
1885- 		{name : "uniqueIndex to notUnique" , from : & UniqueStruct5 {}, to : & UniqueStruct2 {}, checkFunc : checkNotUnique },
1886- 		{name : "uniqueIndex to unique" , from : & UniqueStruct5 {}, to : & UniqueStruct3 {}, checkFunc : checkUnique },
18871884		{name : "uniqueIndex to uniqueIndex" , from : & UniqueStruct5 {}, to : & UniqueStruct6 {}, checkFunc : checkUniqueIndex },
18881885		{name : "uniqueIndex to uniqueAndUniqueIndex" , from : & UniqueStruct5 {}, to : & UniqueStruct8 {}, checkFunc : checkMyIndex },
18891886		{name : "uniqueIndex to multi uniqueIndex" , from : & UniqueStruct5 {}, to : & UniqueStruct7 {}, checkFunc : checkMulIndex },
@@ -1903,6 +1900,18 @@ func TestMigrateWithUniqueIndexAndUnique(t *testing.T) {
19031900		})
19041901	}
19051902
1903+ 	if  DB .Dialector .Name () !=  "sqlserver"  {
1904+ 		// In SQLServer, If an index or constraint depends on the column, 
1905+ 		// this column will not be able to run ALTER 
1906+ 		// see https://stackoverflow.com/questions/19460912/the-object-df-is-dependent-on-column-changing-int-to-double/19461205#19461205 
1907+ 		// may we need to create another PR to fix it, see https://github.com/go-gorm/sqlserver/pull/106 
1908+ 		tests  =  []TestCase {
1909+ 			{name : "unique to notUnique" , from : & UniqueStruct3 {}, to : & UniqueStruct1 {}, checkFunc : checkNotUnique },
1910+ 			{name : "uniqueIndex to notUnique" , from : & UniqueStruct5 {}, to : & UniqueStruct2 {}, checkFunc : checkNotUnique },
1911+ 			{name : "uniqueIndex to unique" , from : & UniqueStruct5 {}, to : & UniqueStruct3 {}, checkFunc : checkUnique },
1912+ 		}
1913+ 	}
1914+ 
19061915	if  DB .Dialector .Name () ==  "mysql"  {
19071916		compatibilityTests  :=  []TestCase {
19081917			{name : "oldUnique to notUnique" , to : UniqueStruct1 {}, checkFunc : checkNotUnique },
0 commit comments