Improve generated structs
parent
49a2362280
commit
b31c3d327b
|
@ -129,7 +129,7 @@ func (s *Mariadb) GetTable(schema, name string) (*Table, error) {
|
||||||
|
|
||||||
// We got no data
|
// We got no data
|
||||||
if count == 0 {
|
if count == 0 {
|
||||||
return nil, fmt.Errorf("schema.table was not found")
|
return nil, fmt.Errorf("%s.%s was not found", schema, name)
|
||||||
}
|
}
|
||||||
|
|
||||||
return table, nil
|
return table, nil
|
||||||
|
|
|
@ -405,7 +405,7 @@ func (c *constructor) getOneToMany(tblConfig *TableConfig, tbl *ddl.Table) (rtc
|
||||||
tag := &ColumnTag{
|
tag := &ColumnTag{
|
||||||
PointedKeyReference: t.Schema + "." + t.Name + "." + c.Name,
|
PointedKeyReference: t.Schema + "." + t.Name + "." + c.Name,
|
||||||
}
|
}
|
||||||
rtc += fmt.Sprintf("\t%s []*%s `%s:\"%s\"`\n", GetFieldName(t.Name), tblName, ColumnTagId, tag.ToTag())
|
rtc += fmt.Sprintf("\t%s []%s `%s:\"%s\"`\n", GetFieldName(t.Name), tblName, ColumnTagId, tag.ToTag())
|
||||||
|
|
||||||
// We also add the full reference to the column inside the string value.
|
// We also add the full reference to the column inside the string value.
|
||||||
fieldNameRoot := GetFieldName(t.Name)
|
fieldNameRoot := GetFieldName(t.Name)
|
||||||
|
|
|
@ -262,7 +262,7 @@ func TestRelationshipOneToMany(t *testing.T) {
|
||||||
expectedTag := &ColumnTag{
|
expectedTag := &ColumnTag{
|
||||||
PointedKeyReference: "here_is_me.workout_details.workout_id",
|
PointedKeyReference: "here_is_me.workout_details.workout_id",
|
||||||
}
|
}
|
||||||
expected := fmt.Sprintf("\tWorkoutDetails []*WorkoutDetailsTab `%s:\"%s\"`\n", ColumnTagId, expectedTag.ToTag())
|
expected := fmt.Sprintf("\tWorkoutDetails []WorkoutDetailsTab `%s:\"%s\"`\n", ColumnTagId, expectedTag.ToTag())
|
||||||
|
|
||||||
// Compare structs
|
// Compare structs
|
||||||
if diff := cmp.Diff(
|
if diff := cmp.Diff(
|
||||||
|
|
|
@ -86,8 +86,14 @@ func GetColumnTag(col *ddl.Column) *ColumnTag {
|
||||||
|
|
||||||
// ToTag transforms this columnTag to a string that can be applied as
|
// ToTag transforms this columnTag to a string that can be applied as
|
||||||
// struct tag
|
// struct tag
|
||||||
func (c *ColumnTag) ToTag() string {
|
func (c *ColumnTag) ToTag() (rtc string) {
|
||||||
rtc := "Column:" + c.Name
|
|
||||||
|
// PointedKeyReference doesn't contain column name
|
||||||
|
if c.PointedKeyReference == "" {
|
||||||
|
rtc = "Column:" + c.Name
|
||||||
|
} else {
|
||||||
|
rtc = "PointedForeignKey:" + c.PointedKeyReference
|
||||||
|
}
|
||||||
|
|
||||||
if c.AutoIncrement {
|
if c.AutoIncrement {
|
||||||
rtc += ",AutoIncrement"
|
rtc += ",AutoIncrement"
|
||||||
|
@ -98,9 +104,6 @@ func (c *ColumnTag) ToTag() string {
|
||||||
if c.ForeignKeyReference != "" {
|
if c.ForeignKeyReference != "" {
|
||||||
rtc += ",ForeignKey:" + c.ForeignKeyReference
|
rtc += ",ForeignKey:" + c.ForeignKeyReference
|
||||||
}
|
}
|
||||||
if c.PointedKeyReference != "" {
|
|
||||||
rtc += ",PointedForeignKey:" + c.PointedKeyReference
|
|
||||||
}
|
|
||||||
|
|
||||||
return rtc
|
return rtc
|
||||||
}
|
}
|
||||||
|
@ -171,9 +174,10 @@ func FromMetadataTag(tag string) *MetadataTag {
|
||||||
point := strings.Index(val, ":")
|
point := strings.Index(val, ":")
|
||||||
key := val[0:point]
|
key := val[0:point]
|
||||||
|
|
||||||
// No value specified
|
// No value specified (schema is optional)
|
||||||
if point+1 == len(val) {
|
if point+1 == len(val) && key != "Schema" {
|
||||||
logger.Warning("No value specified for metadata tag %q", val)
|
logger.Warning("No value specified for metadata tag %q", val)
|
||||||
|
logger.Debug("Tag value for mising metadata: %q", val)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
value := val[point+1:]
|
value := val[point+1:]
|
||||||
|
|
Loading…
Reference in New Issue