123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package models
- import (
- "errors"
- "fmt"
- "log/slog"
- )
- import (
- "gorm.io/driver/postgres"
- "gorm.io/gorm"
- )
- import (
- "resource-server/common"
- "resource-server/logger"
- )
- var (
- DB *gorm.DB
- err error
- )
- func panicHelper(err error) {
- if err != nil {
- panic(err)
- }
- }
- func migrate() {
- panicHelper(DB.AutoMigrate(&User{}))
- var user User
- err := DB.First(&user).Error
- if errors.Is(err, gorm.ErrRecordNotFound) {
- newAdmin := User{Name: "admin"}
- newAdmin.GenerateFromPassword([]byte("123456"))
- DB.Create(&newAdmin)
- }
- panicHelper(DB.AutoMigrate(&ConfigItem{}))
- var count int64
- DB.Model(&ConfigItem{}).Count(&count)
- if count == 0 {
- panicHelper(initConfigItem())
- }
- }
- func SetupGorm(m bool) {
- slog.Info("setup gorm")
- dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%d sslmode=disable TimeZone=Asia/Shanghai",
- common.PostgresConfig.Ip,
- common.PostgresConfig.Username,
- common.PostgresConfig.Password,
- common.PostgresConfig.Name,
- common.PostgresConfig.Port,
- )
- if common.LoggerConfig.LogLevel == "debug" {
- DB, err = gorm.Open(postgres.Open(dsn), &gorm.Config{
- Logger: logger.NewGormLogger(logger.WithGroup("gorm")),
- })
- } else {
- DB, err = gorm.Open(postgres.Open(dsn), &gorm.Config{})
- }
- if err != nil {
- panic(err)
- }
- if m {
- migrate()
- }
- slog.Info("setup gorm ok")
- }
|