42 lines
628 B
Go
42 lines
628 B
Go
package database
|
|
|
|
import (
|
|
"goblog/config"
|
|
"goblog/models"
|
|
"log/slog"
|
|
|
|
"github.com/glebarez/sqlite"
|
|
"gorm.io/gorm"
|
|
"gorm.io/gorm/logger"
|
|
)
|
|
|
|
var DB *gorm.DB
|
|
|
|
func Init(cfg *config.DatabaseConfig) error {
|
|
var err error
|
|
|
|
DB, err = gorm.Open(sqlite.Open(cfg.DSN), &gorm.Config{
|
|
Logger: logger.Default.LogMode(logger.Info),
|
|
})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// 自动迁移
|
|
err = DB.AutoMigrate(
|
|
&models.User{},
|
|
&models.Post{},
|
|
&models.Category{},
|
|
&models.Tag{},
|
|
&models.Comment{},
|
|
&models.Page{},
|
|
&models.Option{},
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
slog.Info("数据库连接成功")
|
|
return nil
|
|
}
|