gorm_mssql.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package initialize
  2. /*
  3. * @Author: 逆光飞翔 191180776@qq.com
  4. * @Date: 2022-12-08 17:25:49
  5. * @LastEditors: 逆光飞翔 191180776@qq.com
  6. * @LastEditTime: 2022-12-08 18:00:00
  7. * @FilePath: \server\initialize\gorm_mssql.go
  8. * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  9. */
  10. import (
  11. "github.com/flipped-aurora/gin-vue-admin/server/config"
  12. "github.com/flipped-aurora/gin-vue-admin/server/global"
  13. "github.com/flipped-aurora/gin-vue-admin/server/initialize/internal"
  14. "gorm.io/driver/sqlserver"
  15. "gorm.io/gorm"
  16. )
  17. // GormMssql 初始化Mssql数据库
  18. // Author [LouisZhang](191180776@qq.com)
  19. func GormMssql() *gorm.DB {
  20. m := global.GVA_CONFIG.Mssql
  21. if m.Dbname == "" {
  22. return nil
  23. }
  24. mssqlConfig := sqlserver.Config{
  25. DSN: m.Dsn(), // DSN data source name
  26. DefaultStringSize: 191, // string 类型字段的默认长度
  27. }
  28. // 数据库配置
  29. general := m.GeneralDB
  30. if db, err := gorm.Open(sqlserver.New(mssqlConfig), internal.Gorm.Config(general)); err != nil {
  31. return nil
  32. } else {
  33. db.InstanceSet("gorm:table_options", "ENGINE="+m.Engine)
  34. sqlDB, _ := db.DB()
  35. sqlDB.SetMaxIdleConns(m.MaxIdleConns)
  36. sqlDB.SetMaxOpenConns(m.MaxOpenConns)
  37. return db
  38. }
  39. }
  40. // GormMssqlByConfig 初始化Mysql数据库用过传入配置
  41. func GormMssqlByConfig(m config.Mssql) *gorm.DB {
  42. if m.Dbname == "" {
  43. return nil
  44. }
  45. mssqlConfig := sqlserver.Config{
  46. DSN: m.Dsn(), // DSN data source name
  47. DefaultStringSize: 191, // string 类型字段的默认长度
  48. }
  49. // 数据库配置
  50. general := m.GeneralDB
  51. if db, err := gorm.Open(sqlserver.New(mssqlConfig), internal.Gorm.Config(general)); err != nil {
  52. panic(err)
  53. } else {
  54. db.InstanceSet("gorm:table_options", "ENGINE=InnoDB")
  55. sqlDB, _ := db.DB()
  56. sqlDB.SetMaxIdleConns(m.MaxIdleConns)
  57. sqlDB.SetMaxOpenConns(m.MaxOpenConns)
  58. return db
  59. }
  60. }