Greetings fellow gophers, I have a library in my vendor folder that looks like this:
package gorm import ( "fmt" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" conf "github.com/spf13/viper" "math/rand" "time" ) var DB *gorm.DB func GetDB() (*gorm.DB, error) { if DB != nil { return DB, nil } DB_NAME := conf.GetString("db.sql.mysql.dbname") DB_USERNAME := conf.GetString("db.sql.mysql.username") DB_PASSWORD := conf.GetString("db.sql.mysql.password") DB_IPS := conf.GetStringSlice("db.sql.mysql.ips") ipsNr := len(DB_IPS) rand.Seed(int64(time.Now().Nanosecond())) connString := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=latin1&parseTime=True", DB_USERNAME, DB_PASSWORD, DB_IPS[rand.Intn(ipsNr)], DB_NAME, ) DB, err := gorm.Open("mysql", connString) if err != nil { return nil, err } return DB, nil } And every time I use GetDB() I get a new database connection instead of getting the one already initialized. When I do the same thing outside the vendor folder it works as intended. What's the catch here? Thank you -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.