SqlXorm.go 734 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package db
  2. import (
  3. "file/entity"
  4. "log"
  5. "os"
  6. "xorm.io/xorm"
  7. _ "github.com/glebarez/sqlite"
  8. )
  9. var DBEngin *xorm.Engine
  10. func Open() {
  11. os.OpenFile("file/file.db", os.O_RDWR|os.O_CREATE, 0666)
  12. // 连接SQLite数据库
  13. engine, err := xorm.NewEngine("sqlite", "file/file.db")
  14. if err != nil {
  15. log.Fatalf("数据库连接失败: %v", err)
  16. }
  17. //defer engine.Close()
  18. DBEngin = engine
  19. // 同步结构体到数据库
  20. if err := engine.Sync2(
  21. new(entity.File),
  22. new(entity.FileAccess),
  23. new(entity.Menu),
  24. new(entity.Role),
  25. new(entity.RoleMenu),
  26. new(entity.User),
  27. new(entity.UserRole),
  28. ); err != nil {
  29. log.Fatalf("同步失败: %v", err)
  30. }
  31. }
  32. func Close() {
  33. err := DBEngin.Close()
  34. if err != nil {
  35. return
  36. }
  37. }