Files
go_blog/models/init.go
2024-08-01 02:44:06 +08:00

60 lines
1.0 KiB
Go

/*
@Time : 2020/6/28 21:46
@Author : xuyiqing
@File : init.py
*/
package models
import (
"fmt"
"go_blog/conf"
"go_blog/pkg/util"
"time"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/schema"
)
var DB *gorm.DB
func SetUp(isOrmDebug bool) {
conUri := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=%s&parseTime=True&loc=Local",
conf.DataBase.User,
conf.DataBase.Password,
conf.DataBase.Host,
conf.DataBase.Port,
conf.DataBase.DBName,
conf.DataBase.Charset)
db, err := gorm.Open(mysql.Open(conUri), &gorm.Config{
NamingStrategy: schema.NamingStrategy{
TablePrefix: conf.DataBase.Prefix,
},
})
if err != nil {
panic(err)
}
DB = db
DB.AutoMigrate(&Account{})
DB.AutoMigrate(&Content{})
}
type BaseModel struct {
ID uint64 `gorm:"primary_key'" json:"id"`
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
DeletedAt *time.Time `sql:"index" json:"-"`
}
// 生成全局唯一ID
func (m *BaseModel) BeforeCreate(scope *gorm.DB) error {
if m.ID == 0 {
m.ID = util.GenSonyFlakeId()
}
return nil
}