// // db.go // Copyright (C) 2024 veypi // 2024-09-20 16:10:16 // Distributed under terms of the MIT license. // package cfg import ( "github.com/veypi/OneBD/rest/middlewares/crud" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" ) var db *gorm.DB var CmdDB = CMD.SubCommand("db", "database operations") var StaticObjs = crud.New() func init() { CmdDB.SubCommand("migrate", "migrate database").Command = func() error { return crud.AutoMigrate(DB(), StaticObjs) } CmdDB.SubCommand("drop", "drop database").Command = func() error { return crud.AutoDrop(DB(), StaticObjs) } } func DB() *gorm.DB { if db == nil { var err error db, err = gorm.Open(mysql.New(mysql.Config{ DSN: Config.DSN, }), &gorm.Config{ Logger: logger.Default.LogMode(logger.Silent), }) // db, err = gorm.Open(postgres.Open(Config.DSN), &gorm.Config{ // Logger: logger.Default.LogMode(logger.Silent), // }) if err != nil { panic(err) } } return db }