9
9
)
10
10
11
11
// GetColumnsFromMysqlTable Select column details from information schema and return map of map
12
- func GetColumnsFromMysqlTable (mariadbUser string , mariadbPassword string , mariadbHost string , mariadbPort int , mariadbDatabase string , mariadbTable string ) (* map [string ]map [string ]string , []string , error ) {
12
+ func GetColumnsFromMysqlTable (mariadbUser string , mariadbPassword string , mariadbHost string , mariadbPort int , mariadbDatabase string , mariadbTable string ) (* map [string ]map [string ]string , []string , error ) {
13
13
14
14
var err error
15
15
var db * sql.DB
@@ -26,13 +26,12 @@ func GetColumnsFromMysqlTable(mariadbUser string, mariadbPassword string, mariad
26
26
return nil , nil , err
27
27
}
28
28
29
-
30
- columnNamesSorted := []string {}
29
+ columnNamesSorted := []string {}
31
30
32
31
// Store colum as map of maps
33
32
columnDataTypes := make (map [string ]map [string ]string )
34
33
// Select columnd data from INFORMATION_SCHEMA
35
- columnDataTypeQuery := "SELECT COLUMN_NAME, COLUMN_KEY, DATA_TYPE, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ? AND table_name = ?"
34
+ columnDataTypeQuery := "SELECT COLUMN_NAME, COLUMN_KEY, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ? AND table_name = ?"
36
35
37
36
if Debug {
38
37
fmt .Println ("running: " + columnDataTypeQuery )
@@ -55,10 +54,11 @@ func GetColumnsFromMysqlTable(mariadbUser string, mariadbPassword string, mariad
55
54
var columnKey string
56
55
var dataType string
57
56
var nullable string
58
- rows .Scan (& column , & columnKey , & dataType , & nullable )
57
+ var comment string
58
+ rows .Scan (& column , & columnKey , & dataType , & nullable , & comment )
59
59
60
- columnDataTypes [column ] = map [string ]string {"value" : dataType , "nullable" : nullable , "primary" : columnKey }
61
- columnNamesSorted = append (columnNamesSorted , column )
60
+ columnDataTypes [column ] = map [string ]string {"value" : dataType , "nullable" : nullable , "primary" : columnKey , "comment" : comment }
61
+ columnNamesSorted = append (columnNamesSorted , column )
62
62
}
63
63
64
64
return & columnDataTypes , columnNamesSorted , err
@@ -100,16 +100,14 @@ func generateMysqlTypes(obj map[string]map[string]string, columnsSorted []string
100
100
if jsonAnnotation == true {
101
101
annotations = append (annotations , fmt .Sprintf ("json:\" %s\" " , key ))
102
102
}
103
- if len (annotations ) > 0 {
104
- structure += fmt .Sprintf ("\n %s %s `%s`" ,
105
- fieldName ,
106
- valueType ,
107
- strings .Join (annotations , " " ))
108
103
104
+ if len (annotations ) > 0 {
105
+ // add colulmn comment
106
+ comment := mysqlType ["comment" ]
107
+ structure += fmt .Sprintf ("\n %s %s `%s` //%s" , fieldName , valueType , strings .Join (annotations , " " ), comment )
108
+ //structure += fmt.Sprintf("\n%s %s `%s`", fieldName, valueType, strings.Join(annotations, " "))
109
109
} else {
110
- structure += fmt .Sprintf ("\n %s %s" ,
111
- fieldName ,
112
- valueType )
110
+ structure += fmt .Sprintf ("\n %s %s" ,fieldName ,valueType )
113
111
}
114
112
}
115
113
return structure
0 commit comments