role table and row added

master
Han Joker 2 months ago
parent e6a0963e1a
commit ef50e63c10

@ -2,6 +2,7 @@ package main
import (
"ginCms/handlers"
"ginCms/models"
"ginCms/utils"
"github.com/spf13/viper"
)
@ -16,6 +17,8 @@ func main() {
// 初始化数据库连接
utils.InitDB()
// 初始化模型
models.Init()
// 初始化路由引擎
r := handlers.InitEngine()

@ -0,0 +1,13 @@
package models
import (
"gorm.io/gorm"
"time"
)
type Model struct {
ID uint `gorm:"primarykey" json:"id"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
}

@ -0,0 +1,30 @@
package models
import (
"ginCms/utils"
"log"
)
// Init 初始化模型
func Init() {
// migrate
migrate()
// seed
seed()
}
// 表结构迁移
func migrate() {
// 自动迁移
if err := utils.DB().AutoMigrate(
&Role{},
); err != nil {
log.Fatalln(err)
}
}
// 数据填充
func seed() {
roleSeed()
}

@ -0,0 +1,39 @@
package models
import "ginCms/utils"
// Role 角色模型
type Role struct {
Model
Title string `gorm:"type:varchar(255);uniqueIndex" json:"title"`
Key string `gorm:"type:varchar(255);uniqueIndex" json:"key"`
Enabled bool `gorm:"" json:"enabled"`
Weight int `gorm:"index;" json:"weight"`
Comment string `gorm:"type:text" json:"comment"`
}
// 填充数据
func roleSeed() {
// 构建数据
rows := []Role{
{
Title: "管理员",
Key: "administrator",
Enabled: true,
Model: Model{ID: 1},
},
{
Title: "常规用户",
Key: "regular",
Enabled: true,
Model: Model{ID: 2},
},
}
// 插入
for _, row := range rows {
if err := utils.DB().FirstOrCreate(&row, row.ID).Error; err != nil {
utils.Logger().With(err.Error())
}
}
}
Loading…
Cancel
Save