From ef50e63c10d61bc5afed9b0398d2dd5abc62c1b5 Mon Sep 17 00:00:00 2001 From: Han Joker <540090808@qq.com> Date: Mon, 22 Jul 2024 18:04:14 +0800 Subject: [PATCH] role table and row added --- main.go | 3 +++ models/base.go | 13 +++++++++++++ models/init.go | 30 ++++++++++++++++++++++++++++++ models/role.go | 39 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 85 insertions(+) create mode 100644 models/base.go create mode 100644 models/init.go create mode 100644 models/role.go diff --git a/main.go b/main.go index 9fdbb5c..91cc80d 100644 --- a/main.go +++ b/main.go @@ -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() diff --git a/models/base.go b/models/base.go new file mode 100644 index 0000000..7231d50 --- /dev/null +++ b/models/base.go @@ -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:"-"` +} diff --git a/models/init.go b/models/init.go new file mode 100644 index 0000000..24904d1 --- /dev/null +++ b/models/init.go @@ -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() +} diff --git a/models/role.go b/models/role.go new file mode 100644 index 0000000..33d161b --- /dev/null +++ b/models/role.go @@ -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()) + } + } +}