From 2af4fd86cc636cc96a24caaed443a42b3d729c65 Mon Sep 17 00:00:00 2001 From: John Guo Date: Tue, 15 Jun 2021 19:57:55 +0800 Subject: [PATCH] rename configuration node name from LinkInfo to Link --- .example/database/gdb/mysql/gdb_insert.go | 6 +++--- database/gdb/gdb.go | 2 +- database/gdb/gdb_core_config.go | 4 ++-- database/gdb/gdb_core_tracing.go | 4 ++-- database/gdb/gdb_driver_mssql.go | 12 ++++++------ database/gdb/gdb_driver_mysql.go | 10 +++++----- database/gdb/gdb_driver_oracle.go | 10 +++++----- database/gdb/gdb_driver_pgsql.go | 10 +++++----- database/gdb/gdb_driver_sqlite.go | 10 +++++----- frame/gins/gins_database.go | 16 ++++++++++------ 10 files changed, 44 insertions(+), 40 deletions(-) diff --git a/.example/database/gdb/mysql/gdb_insert.go b/.example/database/gdb/mysql/gdb_insert.go index ee345b370..a6afa8491 100644 --- a/.example/database/gdb/mysql/gdb_insert.go +++ b/.example/database/gdb/mysql/gdb_insert.go @@ -10,9 +10,9 @@ func main() { //db := g.DB() gdb.AddDefaultConfigNode(gdb.ConfigNode{ - LinkInfo: "root:12345678@tcp(127.0.0.1:3306)/test?parseTime=true&loc=Local", - Type: "mysql", - Charset: "utf8", + Link: "root:12345678@tcp(127.0.0.1:3306)/test?parseTime=true&loc=Local", + Type: "mysql", + Charset: "utf8", }) db, _ := gdb.New() diff --git a/database/gdb/gdb.go b/database/gdb/gdb.go index aef802395..2548fe6d2 100644 --- a/database/gdb/gdb.go +++ b/database/gdb/gdb.go @@ -169,7 +169,7 @@ type DB interface { GetChars() (charLeft string, charRight string) // See Core.GetChars. Tables(ctx context.Context, schema ...string) (tables []string, err error) // See Core.Tables. TableFields(ctx context.Context, table string, schema ...string) (map[string]*TableField, error) // See Core.TableFields. - FilteredLinkInfo() string // See Core.FilteredLinkInfo. + FilteredLink() string } // Core is the base struct for database management. diff --git a/database/gdb/gdb_core_config.go b/database/gdb/gdb_core_config.go index 3ca62b382..a839ce8ba 100644 --- a/database/gdb/gdb_core_config.go +++ b/database/gdb/gdb_core_config.go @@ -30,6 +30,7 @@ type ConfigNode struct { Pass string `json:"pass"` // Authentication password. Name string `json:"name"` // Default used database name. Type string `json:"type"` // Database type: mysql, sqlite, mssql, pgsql, oracle. + Link string `json:"link"` // (Optional) Custom link information, when it is used, configuration Host/Port/User/Pass/Name are ignored. Role string `json:"role"` // (Optional, "master" in default) Node role, used for master-slave mode: master, slave. Debug bool `json:"debug"` // (Optional) Debug mode enables debug information logging and output. Prefix string `json:"prefix"` // (Optional) Table prefix. @@ -37,7 +38,6 @@ type ConfigNode struct { Weight int `json:"weight"` // (Optional) Weight for load balance calculating, it's useless if there's just one node. Charset string `json:"charset"` // (Optional, "utf8mb4" in default) Custom charset when operating on database. Timezone string `json:"timezone"` // (Optional) Sets the time zone for displaying and interpreting time stamps. - LinkInfo string `json:"link"` // (Optional) Custom link information, when it is used, configuration Host/Port/User/Pass/Name are ignored. MaxIdleConnCount int `json:"maxIdle"` // (Optional) Max idle connection configuration for underlying connection pool. MaxOpenConnCount int `json:"maxOpen"` // (Optional) Max open connection configuration for underlying connection pool. MaxConnLifeTime time.Duration `json:"maxLifeTime"` // (Optional) Max amount of time a connection may be idle before being closed. @@ -187,7 +187,7 @@ func (node *ConfigNode) String() string { node.MaxIdleConnCount, node.MaxOpenConnCount, node.MaxConnLifeTime, - node.LinkInfo, + node.Link, ) } diff --git a/database/gdb/gdb_core_tracing.go b/database/gdb/gdb_core_tracing.go index 3c746ec2c..2f4b87e77 100644 --- a/database/gdb/gdb_core_tracing.go +++ b/database/gdb/gdb_core_tracing.go @@ -76,8 +76,8 @@ func (c *Core) addSqlToTracing(ctx context.Context, sql *Sql) { if c.db.GetConfig().User != "" { labels = append(labels, attribute.String(tracingAttrDbUser, c.db.GetConfig().User)) } - if filteredLinkInfo := c.db.FilteredLinkInfo(); filteredLinkInfo != "" { - labels = append(labels, attribute.String(tracingAttrDbLink, c.db.FilteredLinkInfo())) + if filteredLink := c.db.FilteredLink(); filteredLink != "" { + labels = append(labels, attribute.String(tracingAttrDbLink, c.db.FilteredLink())) } if group := c.db.GetGroup(); group != "" { labels = append(labels, attribute.String(tracingAttrDbGroup, group)) diff --git a/database/gdb/gdb_driver_mssql.go b/database/gdb/gdb_driver_mssql.go index 79c1afc1b..4ee218504 100644 --- a/database/gdb/gdb_driver_mssql.go +++ b/database/gdb/gdb_driver_mssql.go @@ -42,8 +42,8 @@ func (d *DriverMssql) New(core *Core, node *ConfigNode) (DB, error) { // Open creates and returns a underlying sql.DB object for mssql. func (d *DriverMssql) Open(config *ConfigNode) (*sql.DB, error) { source := "" - if config.LinkInfo != "" { - source = config.LinkInfo + if config.Link != "" { + source = config.Link } else { source = fmt.Sprintf( "user id=%s;password=%s;server=%s;port=%s;database=%s;encrypt=disable", @@ -58,17 +58,17 @@ func (d *DriverMssql) Open(config *ConfigNode) (*sql.DB, error) { } } -// FilteredLinkInfo retrieves and returns filtered `linkInfo` that can be using for +// FilteredLink retrieves and returns filtered `linkInfo` that can be using for // logging or tracing purpose. -func (d *DriverMssql) FilteredLinkInfo() string { - linkInfo := d.GetConfig().LinkInfo +func (d *DriverMssql) FilteredLink() string { + linkInfo := d.GetConfig().Link if linkInfo == "" { return "" } s, _ := gregex.ReplaceString( `(.+);\s*password=(.+);\s*server=(.+)`, `$1;password=xxx;server=$3`, - d.GetConfig().LinkInfo, + d.GetConfig().Link, ) return s } diff --git a/database/gdb/gdb_driver_mysql.go b/database/gdb/gdb_driver_mysql.go index 207a3d590..adb1db26a 100644 --- a/database/gdb/gdb_driver_mysql.go +++ b/database/gdb/gdb_driver_mysql.go @@ -37,8 +37,8 @@ func (d *DriverMysql) New(core *Core, node *ConfigNode) (DB, error) { // Note that it converts time.Time argument to local timezone in default. func (d *DriverMysql) Open(config *ConfigNode) (*sql.DB, error) { var source string - if config.LinkInfo != "" { - source = config.LinkInfo + if config.Link != "" { + source = config.Link // Custom changing the schema in runtime. if config.Name != "" { source, _ = gregex.ReplaceString(`/([\w\.\-]+)+`, "/"+config.Name, source) @@ -60,10 +60,10 @@ func (d *DriverMysql) Open(config *ConfigNode) (*sql.DB, error) { } } -// FilteredLinkInfo retrieves and returns filtered `linkInfo` that can be using for +// FilteredLink retrieves and returns filtered `linkInfo` that can be using for // logging or tracing purpose. -func (d *DriverMysql) FilteredLinkInfo() string { - linkInfo := d.GetConfig().LinkInfo +func (d *DriverMysql) FilteredLink() string { + linkInfo := d.GetConfig().Link if linkInfo == "" { return "" } diff --git a/database/gdb/gdb_driver_oracle.go b/database/gdb/gdb_driver_oracle.go index 313b69e6c..ab48340a7 100644 --- a/database/gdb/gdb_driver_oracle.go +++ b/database/gdb/gdb_driver_oracle.go @@ -48,8 +48,8 @@ func (d *DriverOracle) New(core *Core, node *ConfigNode) (DB, error) { // Open creates and returns a underlying sql.DB object for oracle. func (d *DriverOracle) Open(config *ConfigNode) (*sql.DB, error) { var source string - if config.LinkInfo != "" { - source = config.LinkInfo + if config.Link != "" { + source = config.Link } else { source = fmt.Sprintf( "%s/%s@%s:%s/%s", @@ -64,10 +64,10 @@ func (d *DriverOracle) Open(config *ConfigNode) (*sql.DB, error) { } } -// FilteredLinkInfo retrieves and returns filtered `linkInfo` that can be using for +// FilteredLink retrieves and returns filtered `linkInfo` that can be using for // logging or tracing purpose. -func (d *DriverOracle) FilteredLinkInfo() string { - linkInfo := d.GetConfig().LinkInfo +func (d *DriverOracle) FilteredLink() string { + linkInfo := d.GetConfig().Link if linkInfo == "" { return "" } diff --git a/database/gdb/gdb_driver_pgsql.go b/database/gdb/gdb_driver_pgsql.go index ddcff4066..a31546ae9 100644 --- a/database/gdb/gdb_driver_pgsql.go +++ b/database/gdb/gdb_driver_pgsql.go @@ -40,8 +40,8 @@ func (d *DriverPgsql) New(core *Core, node *ConfigNode) (DB, error) { // Open creates and returns a underlying sql.DB object for pgsql. func (d *DriverPgsql) Open(config *ConfigNode) (*sql.DB, error) { var source string - if config.LinkInfo != "" { - source = config.LinkInfo + if config.Link != "" { + source = config.Link } else { source = fmt.Sprintf( "user=%s password=%s host=%s port=%s dbname=%s sslmode=disable", @@ -59,10 +59,10 @@ func (d *DriverPgsql) Open(config *ConfigNode) (*sql.DB, error) { } } -// FilteredLinkInfo retrieves and returns filtered `linkInfo` that can be using for +// FilteredLink retrieves and returns filtered `linkInfo` that can be using for // logging or tracing purpose. -func (d *DriverPgsql) FilteredLinkInfo() string { - linkInfo := d.GetConfig().LinkInfo +func (d *DriverPgsql) FilteredLink() string { + linkInfo := d.GetConfig().Link if linkInfo == "" { return "" } diff --git a/database/gdb/gdb_driver_sqlite.go b/database/gdb/gdb_driver_sqlite.go index 90c8f36c9..5dc37c2ae 100644 --- a/database/gdb/gdb_driver_sqlite.go +++ b/database/gdb/gdb_driver_sqlite.go @@ -38,8 +38,8 @@ func (d *DriverSqlite) New(core *Core, node *ConfigNode) (DB, error) { // Open creates and returns a underlying sql.DB object for sqlite. func (d *DriverSqlite) Open(config *ConfigNode) (*sql.DB, error) { var source string - if config.LinkInfo != "" { - source = config.LinkInfo + if config.Link != "" { + source = config.Link } else { source = config.Name } @@ -55,10 +55,10 @@ func (d *DriverSqlite) Open(config *ConfigNode) (*sql.DB, error) { } } -// FilteredLinkInfo retrieves and returns filtered `linkInfo` that can be using for +// FilteredLink retrieves and returns filtered `linkInfo` that can be using for // logging or tracing purpose. -func (d *DriverSqlite) FilteredLinkInfo() string { - return d.GetConfig().LinkInfo +func (d *DriverSqlite) FilteredLink() string { + return d.GetConfig().Link } // GetChars returns the security char for this type of database. diff --git a/frame/gins/gins_database.go b/frame/gins/gins_database.go index 26e97b5fe..506a66cf0 100644 --- a/frame/gins/gins_database.go +++ b/frame/gins/gins_database.go @@ -104,7 +104,7 @@ func Database(name ...string) gdb.DB { // which is the default group configuration. if node := parseDBConfigNode(configMap); node != nil { cg := gdb.ConfigGroup{} - if node.LinkInfo != "" || node.Host != "" { + if node.Link != "" || node.Host != "" { cg = append(cg, *node) } @@ -156,15 +156,19 @@ func parseDBConfigNode(value interface{}) *gdb.ConfigNode { if err != nil { panic(err) } - if _, v := gutil.MapPossibleItemByKey(nodeMap, "link"); v != nil { - node.LinkInfo = gconv.String(v) + // To be compatible with old version. + if _, v := gutil.MapPossibleItemByKey(nodeMap, "LinkInfo"); v != nil { + node.Link = gconv.String(v) + } + if _, v := gutil.MapPossibleItemByKey(nodeMap, "Link"); v != nil { + node.Link = gconv.String(v) } // Parse link syntax. - if node.LinkInfo != "" && node.Type == "" { - match, _ := gregex.MatchString(`([a-z]+):(.+)`, node.LinkInfo) + if node.Link != "" && node.Type == "" { + match, _ := gregex.MatchString(`([a-z]+):(.+)`, node.Link) if len(match) == 3 { node.Type = gstr.Trim(match[1]) - node.LinkInfo = gstr.Trim(match[2]) + node.Link = gstr.Trim(match[2]) } } return node