gorm_oracle.go 983 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package initialize
  2. import (
  3. oracle "github.com/dzwvip/gorm-oracle"
  4. "github.com/flipped-aurora/gin-vue-admin/server/config"
  5. "github.com/flipped-aurora/gin-vue-admin/server/global"
  6. "github.com/flipped-aurora/gin-vue-admin/server/initialize/internal"
  7. "gorm.io/gorm"
  8. )
  9. // GormOracle 初始化oracle数据库
  10. func GormOracle() *gorm.DB {
  11. m := global.GVA_CONFIG.Oracle
  12. return initOracleDatabase(m)
  13. }
  14. // GormOracleByConfig 初始化Oracle数据库用过传入配置
  15. func GormOracleByConfig(m config.Oracle) *gorm.DB {
  16. return initOracleDatabase(m)
  17. }
  18. // initOracleDatabase 初始化Oracle数据库的辅助函数
  19. func initOracleDatabase(m config.Oracle) *gorm.DB {
  20. if m.Dbname == "" {
  21. return nil
  22. }
  23. // 数据库配置
  24. general := m.GeneralDB
  25. if db, err := gorm.Open(oracle.Open(m.Dsn()), internal.Gorm.Config(general)); err != nil {
  26. panic(err)
  27. } else {
  28. sqlDB, _ := db.DB()
  29. sqlDB.SetMaxIdleConns(m.MaxIdleConns)
  30. sqlDB.SetMaxOpenConns(m.MaxOpenConns)
  31. return db
  32. }
  33. }