gorm.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package initialize
  2. import (
  3. "os"
  4. "server/dao"
  5. "go.uber.org/zap"
  6. "gorm.io/gorm"
  7. "server/global"
  8. "server/model/example"
  9. )
  10. func Gorm() *gorm.DB {
  11. switch global.GVA_CONFIG.System.DbType {
  12. case "mysql":
  13. return GormMysql()
  14. case "pgsql":
  15. return GormPgSql()
  16. case "oracle":
  17. return GormOracle()
  18. case "mssql":
  19. return GormMssql()
  20. case "sqlite":
  21. return GormSqlite()
  22. default:
  23. return GormMysql()
  24. }
  25. }
  26. func RegisterTables() {
  27. db := global.GVA_DB
  28. err := db.AutoMigrate(
  29. dao.SysApi{},
  30. dao.SysUser{},
  31. dao.SysBaseMenu{},
  32. dao.JwtBlacklist{},
  33. dao.SysAuthority{},
  34. dao.SysDictionary{},
  35. dao.SysOperationRecord{},
  36. dao.SysDictionaryDetail{},
  37. dao.SysBaseMenuParameter{},
  38. dao.SysBaseMenuBtn{},
  39. dao.SysAuthorityBtn{},
  40. example.ExaFile{},
  41. example.ExaFileChunk{},
  42. dao.ExaFileUploadAndDownload{},
  43. dao.Department{},
  44. dao.Project{},
  45. dao.ProjectState{},
  46. dao.ProjectFile{},
  47. dao.FileGenre{},
  48. dao.NecessaryDocument{},
  49. dao.ProjectWorkingHours{},
  50. dao.Collection{},
  51. dao.Borrowing{},
  52. dao.ExpensesGenre{},
  53. dao.DailyExpenses{},
  54. dao.DailyFeeDetails{},
  55. dao.DailyFile{},
  56. dao.Reimbursement{},
  57. dao.FeeDetails{},
  58. dao.Constructor{},
  59. dao.Expenses{},
  60. dao.MonthExpenses{},
  61. dao.ProjectFee{},
  62. dao.ProjectFeeGenre{},
  63. dao.ProjectMonthFee{},
  64. )
  65. if err != nil {
  66. global.GVA_LOG.Error("register table failed", zap.Error(err))
  67. os.Exit(0)
  68. }
  69. global.GVA_LOG.Info("register table success")
  70. }