mirror of https://github.com/go-gorm/gorm.git
Fix possible duplciated foreign key name
This commit is contained in:
parent
05b3f036f8
commit
393d8a3a52
|
@ -558,7 +558,8 @@ func (scope *Scope) addIndex(unique bool, indexName string, column ...string) {
|
|||
|
||||
func (scope *Scope) addForeignKey(field string, dest string, onDelete string, onUpdate string) {
|
||||
var table = scope.TableName()
|
||||
var keyName = fmt.Sprintf("%s_%s_foreign", table, field)
|
||||
var keyName = fmt.Sprintf("%s_%s_%s_foreign", table, field, regexp.MustCompile("[^a-zA-Z]").ReplaceAllString(dest, "_"))
|
||||
keyName = regexp.MustCompile("_+").ReplaceAllString(keyName, "_")
|
||||
var query = `ALTER TABLE %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s ON DELETE %s ON UPDATE %s;`
|
||||
scope.Raw(fmt.Sprintf(query, scope.QuotedTableName(), scope.QuoteIfPossible(keyName), scope.QuoteIfPossible(field), scope.QuoteIfPossible(dest), onDelete, onUpdate)).Exec()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue