@@ -6,9 +6,17 @@ import (
66 "strings"
77
88 _ "github.com/go-sql-driver/mysql"
9+ "github.com/gookit/color"
910 "github.com/pkg/errors"
1011)
1112
13+ // CloseDB closes the db connection.
14+ func CloseDB () {
15+ if err := db .Close (); err != nil {
16+ color .Red .Println ("db.Close err:" , err )
17+ }
18+ }
19+
1220// getDB returns the opened db connection.
1321func getDB (c * CMDConfig ) (* sql.DB , error ) {
1422 if db != nil {
@@ -63,10 +71,6 @@ func getTableComment(c *CMDConfig) (string, error) {
6371
6472// getColumnInfos returns the details of columns.
6573func getColumnInfos (c * CMDConfig ) ([]* ColumnInfo , error ) {
66- if columnInfos != nil {
67- return columnInfos , nil
68- }
69-
7074 db , err := getDB (c )
7175 if err != nil {
7276 return nil , err
@@ -90,7 +94,7 @@ func getColumnInfos(c *CMDConfig) ([]*ColumnInfo, error) {
9094 return nil , errors .New ("no rows returned" )
9195 }
9296
93- columnInfos = make ([]* ColumnInfo , 0 )
97+ columnInfos : = make ([]* ColumnInfo , 0 )
9498 indexInfos , err := getIndexInfos (c )
9599 if err != nil {
96100 return nil , errors .WithMessage (err , "getIndexInfos err" )
@@ -117,7 +121,7 @@ func getColumnInfos(c *CMDConfig) ([]*ColumnInfo, error) {
117121 Name : cn , DataType : dt , Type : ct , Default : strings .TrimSpace (cd .String ), Comment : strings .TrimSpace (cc ),
118122 Length : cml .Int64 , Precision : np .Int64 , Scale : nc .Int64 , Position : op ,
119123 IsPrimaryKey : ck == "PRI" , IsAutoIncrement : strings .Contains (e , "auto_increment" ),
120- IsUnsigned : strings .Contains (ct , "unsigned" ), IsNullable : in == "YES" ,
124+ IsUnsigned : strings .Contains (ct , "unsigned" ) && ! c . DisableUnsigned , IsNullable : in == "YES" ,
121125 }
122126
123127 ci .Indexes , ci .UniqueIndexes = getColumnIndexInfos (indexInfos , ci .Name )
@@ -133,10 +137,6 @@ func getColumnInfos(c *CMDConfig) ([]*ColumnInfo, error) {
133137
134138// getIndexInfos returns the details of indexes.
135139func getIndexInfos (c * CMDConfig ) ([]* IndexInfo , error ) {
136- if indexInfos != nil {
137- return indexInfos , nil
138- }
139-
140140 db , err := getDB (c )
141141 if err != nil {
142142 return nil , err
@@ -152,7 +152,7 @@ func getIndexInfos(c *CMDConfig) ([]*IndexInfo, error) {
152152 return nil , errors .WithMessage (err , "db.Query err" )
153153 }
154154
155- indexInfos = make ([]* IndexInfo , 0 )
155+ indexInfos : = make ([]* IndexInfo , 0 )
156156
157157 if rows != nil {
158158 defer rows .Close ()
0 commit comments