Files
schisandra-album-cloud-micr…/common/core/mysql.go
2024-11-12 22:59:39 +08:00

36 lines
715 B
Go

package core
import (
"context"
"database/sql"
"log"
"time"
entsql "entgo.io/ent/dialect/sql"
_ "github.com/go-sql-driver/mysql"
"schisandra-album-cloud-microservices/common/ent"
)
func InitMySQL(url string) *ent.Client {
var db *sql.DB
db, err := sql.Open("mysql", url)
if err != nil {
log.Panicf("failed to connect to database: %v", err)
return nil
}
db.SetMaxOpenConns(100)
db.SetMaxIdleConns(10)
db.SetConnMaxLifetime(time.Hour)
drv := entsql.OpenDB("mysql", db)
client := ent.NewClient(ent.Driver(drv), ent.Debug())
defer client.Close()
if err = client.Schema.Create(context.Background()); err != nil {
log.Panicf("failed creating schema resources: %v", err)
}
return client
}