forked from mirror/gorm
Remove autoincrement tag for join table, close #3217
This commit is contained in:
parent
dc299b900f
commit
2676fa4fb8
|
@ -220,7 +220,7 @@ func (schema *Schema) buildMany2ManyRelation(relation *Relationship, field *Fiel
|
||||||
Name: joinFieldName,
|
Name: joinFieldName,
|
||||||
PkgPath: ownField.StructField.PkgPath,
|
PkgPath: ownField.StructField.PkgPath,
|
||||||
Type: ownField.StructField.Type,
|
Type: ownField.StructField.Type,
|
||||||
Tag: removeSettingFromTag(ownField.StructField.Tag, "column"),
|
Tag: removeSettingFromTag(removeSettingFromTag(ownField.StructField.Tag, "column"), "autoincrement"),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,7 +243,7 @@ func (schema *Schema) buildMany2ManyRelation(relation *Relationship, field *Fiel
|
||||||
Name: joinFieldName,
|
Name: joinFieldName,
|
||||||
PkgPath: relField.StructField.PkgPath,
|
PkgPath: relField.StructField.PkgPath,
|
||||||
Type: relField.StructField.Type,
|
Type: relField.StructField.Type,
|
||||||
Tag: removeSettingFromTag(relField.StructField.Tag, "column"),
|
Tag: removeSettingFromTag(removeSettingFromTag(relField.StructField.Tag, "column"), "autoincrement"),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ func toColumns(val string) (results []string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func removeSettingFromTag(tag reflect.StructTag, name string) reflect.StructTag {
|
func removeSettingFromTag(tag reflect.StructTag, name string) reflect.StructTag {
|
||||||
return reflect.StructTag(regexp.MustCompile(`(?i)(gorm:.*?)(`+name+`:.*?)(;|("))`).ReplaceAllString(string(tag), "${1}${4}"))
|
return reflect.StructTag(regexp.MustCompile(`(?i)(gorm:.*?)(`+name+`(:.*?)?)(;|("))`).ReplaceAllString(string(tag), "${1}${5}"))
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetRelationsValues get relations's values from a reflect value
|
// GetRelationsValues get relations's values from a reflect value
|
||||||
|
|
|
@ -13,6 +13,7 @@ func TestRemoveSettingFromTag(t *testing.T) {
|
||||||
`gorm:"column:db" other:"before:value;column:db;after:value"`: `gorm:"" other:"before:value;column:db;after:value"`,
|
`gorm:"column:db" other:"before:value;column:db;after:value"`: `gorm:"" other:"before:value;column:db;after:value"`,
|
||||||
`gorm:"before:value;column:db ;after:value" other:"before:value;column:db;after:value"`: `gorm:"before:value;after:value" other:"before:value;column:db;after:value"`,
|
`gorm:"before:value;column:db ;after:value" other:"before:value;column:db;after:value"`: `gorm:"before:value;after:value" other:"before:value;column:db;after:value"`,
|
||||||
`gorm:"before:value;column:db; after:value" other:"before:value;column:db;after:value"`: `gorm:"before:value; after:value" other:"before:value;column:db;after:value"`,
|
`gorm:"before:value;column:db; after:value" other:"before:value;column:db;after:value"`: `gorm:"before:value; after:value" other:"before:value;column:db;after:value"`,
|
||||||
|
`gorm:"before:value;column; after:value" other:"before:value;column:db;after:value"`: `gorm:"before:value; after:value" other:"before:value;column:db;after:value"`,
|
||||||
}
|
}
|
||||||
|
|
||||||
for k, v := range tags {
|
for k, v := range tags {
|
||||||
|
|
|
@ -39,13 +39,13 @@ func TestPostgres(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Post struct {
|
type Post struct {
|
||||||
ID uuid.UUID `gorm:"primary_key;type:uuid;default:uuid_generate_v4()"`
|
ID uuid.UUID `gorm:"primary_key;type:uuid;default:uuid_generate_v4();autoincrement"`
|
||||||
Title string
|
Title string
|
||||||
Categories []*Category `gorm:"Many2Many:post_categories"`
|
Categories []*Category `gorm:"Many2Many:post_categories"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Category struct {
|
type Category struct {
|
||||||
ID uuid.UUID `gorm:"primary_key;type:uuid;default:uuid_generate_v4()"`
|
ID uuid.UUID `gorm:"primary_key;type:uuid;default:uuid_generate_v4();autoincrement"`
|
||||||
Title string
|
Title string
|
||||||
Posts []*Post `gorm:"Many2Many:post_categories"`
|
Posts []*Post `gorm:"Many2Many:post_categories"`
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue