GORM pq连接过多

I am using GORM with my project, everything is good until I got an error that said:

pq: sorry, too many clients already

I just use the default configuration. The error happened after I did a lot of test requests on my application.

And the error is gone after I restart my application. So, I am thinking that the GORM connection is not released after I'm done with the query. I don't check it very deep enough on GORM code, I just ask here maybe someone has already experience about it?

The error message you are getting is a PostgreSQL error and not GORM. It is caused as you are opening the database connection more than once.

db, err := gorm.Open("postgres", "user=gorm dbname=gorm")

Should be initiated once and referred to after that.

sync.Once.Do(func() {
    instance, err := gorm.Open("postgres",
        "root:password@"+
            "tcp(localhost:3306)/rav"+
            "?charset=utf8&parseTime=True")
    if err != nil {
        log.Println("Connection Failed to Open")
        return
    }
    log.Println("Connection Established here")
    instance.DB().SetMaxIdleConns(10)
    instance.LogMode(true)
})

You can restrict the connection to singleton function so the connection happens once even though it gets called multiple times.