Thank you!

On Monday, November 14, 2016 at 11:00:36 AM UTC+2, pierre...@gmail.com 
wrote:
>
> Hello,
>
> You shadow your DB global variable in the DB, err := gorm.Open() call.
> Do something like this instead:
> var err error
> DB, err = gorm.Open()
>
>
>
> Le lundi 14 novembre 2016 09:54:40 UTC+1, Rayland a écrit :
>>
>> 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.

Reply via email to