diff --git a/transformers/struct.go b/transformers/struct.go index 37fe2f3bbd..7367c3c06d 100644 --- a/transformers/struct.go +++ b/transformers/struct.go @@ -363,8 +363,8 @@ func DefaultNameTransformer(field reflect.StructField) (string, error) { if jsonTag == "-" { return "", nil } - if schema.ValidColumnName(jsonTag) { - name = jsonTag + if nameFromJSONTag := defaultCaser.ToSnake(jsonTag); schema.ValidColumnName(nameFromJSONTag) { + return nameFromJSONTag, nil } } return defaultCaser.ToSnake(name), nil diff --git a/transformers/struct_test.go b/transformers/struct_test.go index 156ed5e28c..1840c22ef0 100644 --- a/transformers/struct_test.go +++ b/transformers/struct_test.go @@ -68,7 +68,8 @@ type ( } testFunnyStruct struct { - AFunnyLookingField string `json:"OS-EXT:a-funny-looking-field"` + AFunnyLookingField string `json:"OS-EXT:a-funny-looking-field"` + AFieldWithCamelCaseName string `json:"camelCaseName"` } ) @@ -255,6 +256,10 @@ var ( Name: "a_funny_looking_field", Type: schema.TypeString, }, + { + Name: "camel_case_name", + Type: schema.TypeString, + }, }, } )