feat: 初始提交 - Code Server Bridge完整实现
- OAuth认证系统(Gitea + Lua扩展) - Git自动化操作(本地/SSH远程) - 实时进度WebSocket推送 - 现代化Tab界面UI - Cobra CLI命令行(init/version/serve) - 完整构建系统(Makefile + Taskfile) - UPX压缩支持(体积减少70%)
This commit is contained in:
50
internal/db/db.go
Normal file
50
internal/db/db.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"cs-bridge/internal/config"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
var db *gorm.DB
|
||||
|
||||
func init() {
|
||||
if _, err := os.Stat("./data"); os.IsNotExist(err) {
|
||||
_ = os.Mkdir("./data", os.ModePerm)
|
||||
}
|
||||
}
|
||||
|
||||
func GetDB() *gorm.DB {
|
||||
if db == nil {
|
||||
panic("数据库未初始化,请先调用 db.InitDB()")
|
||||
}
|
||||
return db
|
||||
}
|
||||
|
||||
func InitDB(cfg config.Database, log *zap.Logger) {
|
||||
go func() {
|
||||
if err := recover(); err != nil {
|
||||
panic(fmt.Sprintf("Init DB Error: %v", err))
|
||||
}
|
||||
}()
|
||||
|
||||
fmt.Println(cfg.SqliteDbPath)
|
||||
dialector := connectSQLite(cfg.SqliteDbPath)
|
||||
|
||||
var err error
|
||||
db, err = gorm.Open(dialector, &gorm.Config{
|
||||
Logger: NewZapGormLogger(log).LogMode(logger.Info),
|
||||
})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// 自动迁移数据库模型
|
||||
if err := db.AutoMigrate(&WorkspaceToken{}); err != nil {
|
||||
panic(fmt.Sprintf("Failed to migrate WorkspaceToken model: %v", err))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user