Fix create join table

This commit is contained in:
Jinzhu 2016-05-09 22:32:33 +08:00
parent d02c2a37ea
commit 4786e830d6
2 changed files with 10 additions and 2 deletions

View File

@ -71,7 +71,7 @@ type StructField struct {
}
func (structField *StructField) clone() *StructField {
return &StructField{
clone := &StructField{
DBName: structField.DBName,
Name: structField.Name,
Names: structField.Names,
@ -81,11 +81,17 @@ func (structField *StructField) clone() *StructField {
IsScanner: structField.IsScanner,
HasDefaultValue: structField.HasDefaultValue,
Tag: structField.Tag,
TagSettings: structField.TagSettings,
TagSettings: map[string]string{},
Struct: structField.Struct,
IsForeignKey: structField.IsForeignKey,
Relationship: structField.Relationship,
}
for key, value := range structField.TagSettings {
clone.TagSettings[key] = value
}
return clone
}
// Relationship described the relationship between models

View File

@ -1027,6 +1027,7 @@ func (scope *Scope) createJoinTable(field *StructField) {
foreignKeyStruct := field.clone()
foreignKeyStruct.IsPrimaryKey = false
foreignKeyStruct.TagSettings["IS_JOINTABLE_FOREIGNKEY"] = "true"
delete(foreignKeyStruct.TagSettings, "AUTO_INCREMENT")
sqlTypes = append(sqlTypes, scope.Quote(relationship.ForeignDBNames[idx])+" "+scope.Dialect().DataTypeOf(foreignKeyStruct))
primaryKeys = append(primaryKeys, scope.Quote(relationship.ForeignDBNames[idx]))
}
@ -1037,6 +1038,7 @@ func (scope *Scope) createJoinTable(field *StructField) {
foreignKeyStruct := field.clone()
foreignKeyStruct.IsPrimaryKey = false
foreignKeyStruct.TagSettings["IS_JOINTABLE_FOREIGNKEY"] = "true"
delete(foreignKeyStruct.TagSettings, "AUTO_INCREMENT")
sqlTypes = append(sqlTypes, scope.Quote(relationship.AssociationForeignDBNames[idx])+" "+scope.Dialect().DataTypeOf(foreignKeyStruct))
primaryKeys = append(primaryKeys, scope.Quote(relationship.AssociationForeignDBNames[idx]))
}