✨ ignore record not found
This commit is contained in:
parent
5c2ce5b442
commit
8b81aeb5a1
@ -11,24 +11,39 @@ import (
|
|||||||
"gorm.io/driver/postgres"
|
"gorm.io/driver/postgres"
|
||||||
"gorm.io/driver/sqlite"
|
"gorm.io/driver/sqlite"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
|
"gorm.io/gorm/logger"
|
||||||
"gorm.io/gorm/schema"
|
"gorm.io/gorm/schema"
|
||||||
|
log2 "log"
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func InitModel() {
|
func InitModel() {
|
||||||
log.Infof("init model...")
|
log.Infof("init model...")
|
||||||
config := conf.Conf.Database
|
databaseConfig := conf.Conf.Database
|
||||||
switch config.Type {
|
newLogger := logger.New(
|
||||||
|
log2.New(os.Stdout, "\r\n", log2.LstdFlags),
|
||||||
|
logger.Config{
|
||||||
|
SlowThreshold: time.Second,
|
||||||
|
LogLevel: logger.Silent,
|
||||||
|
IgnoreRecordNotFoundError: true,
|
||||||
|
Colorful: true,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
gormConfig := &gorm.Config{
|
||||||
|
NamingStrategy: schema.NamingStrategy{
|
||||||
|
TablePrefix: databaseConfig.TablePrefix,
|
||||||
|
},
|
||||||
|
Logger: newLogger,
|
||||||
|
}
|
||||||
|
switch databaseConfig.Type {
|
||||||
case "sqlite3":
|
case "sqlite3":
|
||||||
{
|
{
|
||||||
if !(strings.HasSuffix(config.DBFile, ".db") && len(config.DBFile) > 3) {
|
if !(strings.HasSuffix(databaseConfig.DBFile, ".db") && len(databaseConfig.DBFile) > 3) {
|
||||||
log.Fatalf("db name error.")
|
log.Fatalf("db name error.")
|
||||||
}
|
}
|
||||||
db, err := gorm.Open(sqlite.Open(config.DBFile), &gorm.Config{
|
db, err := gorm.Open(sqlite.Open(databaseConfig.DBFile), gormConfig)
|
||||||
NamingStrategy: schema.NamingStrategy{
|
|
||||||
TablePrefix: config.TablePrefix,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("failed to connect database:%s", err.Error())
|
log.Fatalf("failed to connect database:%s", err.Error())
|
||||||
}
|
}
|
||||||
@ -37,12 +52,8 @@ func InitModel() {
|
|||||||
case "mysql":
|
case "mysql":
|
||||||
{
|
{
|
||||||
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local",
|
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local",
|
||||||
config.User, config.Password, config.Host, config.Port, config.Name)
|
databaseConfig.User, databaseConfig.Password, databaseConfig.Host, databaseConfig.Port, databaseConfig.Name)
|
||||||
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
|
db, err := gorm.Open(mysql.Open(dsn), gormConfig)
|
||||||
NamingStrategy: schema.NamingStrategy{
|
|
||||||
TablePrefix: config.TablePrefix,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("failed to connect database:%s", err.Error())
|
log.Fatalf("failed to connect database:%s", err.Error())
|
||||||
}
|
}
|
||||||
@ -51,12 +62,8 @@ func InitModel() {
|
|||||||
case "postgres":
|
case "postgres":
|
||||||
{
|
{
|
||||||
dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%d sslmode=disable TimeZone=Asia/Shanghai",
|
dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%d sslmode=disable TimeZone=Asia/Shanghai",
|
||||||
config.Host, config.User, config.Password, config.Name, config.Port)
|
databaseConfig.Host, databaseConfig.User, databaseConfig.Password, databaseConfig.Name, databaseConfig.Port)
|
||||||
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
|
db, err := gorm.Open(postgres.Open(dsn), gormConfig)
|
||||||
NamingStrategy: schema.NamingStrategy{
|
|
||||||
TablePrefix: config.TablePrefix,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("failed to connect database:%s", err.Error())
|
log.Errorf("failed to connect database:%s", err.Error())
|
||||||
}
|
}
|
||||||
@ -64,7 +71,7 @@ func InitModel() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
log.Fatalf("not supported database type: %s", config.Type)
|
log.Fatalf("not supported database type: %s", databaseConfig.Type)
|
||||||
}
|
}
|
||||||
log.Infof("auto migrate model")
|
log.Infof("auto migrate model")
|
||||||
err := conf.DB.AutoMigrate(&model.SettingItem{}, &model.Account{}, &model.Meta{})
|
err := conf.DB.AutoMigrate(&model.SettingItem{}, &model.Account{}, &model.Meta{})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user