@@ -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