Dialect Index first, before AddIndex

This commit is contained in:
Jason Lee 2015-03-09 21:33:25 +08:00
parent 6fed43162f
commit 708d85763c
1 changed files with 6 additions and 6 deletions

View File

@ -492,6 +492,10 @@ func (scope *Scope) dropColumn(column string) {
} }
func (scope *Scope) addIndex(unique bool, indexName string, column ...string) { func (scope *Scope) addIndex(unique bool, indexName string, column ...string) {
if scope.Dialect().HasIndex(scope, scope.TableName(), indexName) {
return
}
var columns []string var columns []string
for _, name := range column { for _, name := range column {
columns = append(columns, scope.Quote(name)) columns = append(columns, scope.Quote(name))
@ -559,16 +563,12 @@ func (scope *Scope) autoIndex() *Scope {
} }
for name, columns := range indexes { for name, columns := range indexes {
if !scope.Dialect().HasIndex(scope, scope.TableName(), name) {
scope.addIndex(false, name, columns...) scope.addIndex(false, name, columns...)
} }
}
for name, columns := range uniqueIndexes { for name, columns := range uniqueIndexes {
if !scope.Dialect().HasIndex(scope, scope.TableName(), name) {
scope.addIndex(true, name, columns...) scope.addIndex(true, name, columns...)
} }
}
return scope return scope
} }