import (
"github.com/mix-go/dotenv"
"github.com/mix-go/xdi"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func init() {
obj := xdi.Object{
Name: "gorm",
//不指定表前缀,不指定表单数
New: func() (i interface{}, e error) {
return gorm.Open(mysql.Open(dotenv.Getenv("DATABASE_DSN").String()))
},
}
// 指定表单数 指定表前缀
//return gorm.Open(mysql.Open(dotenv.Getenv("DATABASE_DSN").String()),
// &gorm.Config{
// NamingStrategy: schema.NamingStrategy{
// TablePrefix: "gormv2_",
// SingularTable: true,
// },
//})
if err := xdi.Provide(&obj); err != nil {
panic(err)
}
}
func Gorm() (db *gorm.DB) {
if err := xdi.Populate("gorm", &db); err != nil {
panic(err)
}
return
}
直接具体指定表名称
当然对于Model对应的数据库表名称还有一种共同的定义方式,如下
func (User) TableName() string {
return "user"
}
网友评论