mirror of https://github.com/go-gorm/gorm.git
Merge pull request #409 from huacnlee/skip_add_index_if_exist
Dialect Index first, before AddIndex
This commit is contained in:
commit
5c38950d9b
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue