Spaces:
Sleeping
Sleeping
File size: 1,167 Bytes
bb9df9e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | package models
import (
"log"
"os"
"github.com/glebarez/sqlite"
"gorm.io/gorm"
)
var DB *gorm.DB
var isInitialized bool
func InitSqlite() {
// 检查目录是否创建
_, err := os.Stat("./db")
if err != nil {
if os.IsNotExist(err) {
os.Mkdir("./db", os.ModePerm)
}
}
// 连接数据库
db, err := gorm.Open(sqlite.Open("./db/sublink.db"), &gorm.Config{})
if err != nil {
log.Println("连接数据库失败")
}
DB = db
// 检查是否已经初始化
if isInitialized {
log.Println("数据库已经初始化,无需重复初始化")
return
}
err = db.AutoMigrate(&User{}, &Subcription{}, &Node{}, &SubLogs{})
if err != nil {
log.Println("数据表迁移失败")
}
// 初始化用户数据
err = db.First(&User{}).Error
if err == gorm.ErrRecordNotFound {
admin := &User{
Username: "admin",
Password: "123456",
Role: "admin",
Nickname: "管理员",
}
err = admin.Create()
if err != nil {
log.Println("初始化添加用户数据失败")
}
}
// 设置初始化标志为 true
isInitialized = true
log.Println("数据库初始化成功") // 只有在没有任何错误时才会打印这个日志
}
|