Aucune description
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package main
  2. import (
  3. "log"
  4. "git.x2erp.com/qdy/go-db/factory/database"
  5. "git.x2erp.com/qdy/go-db/sqldef"
  6. "git.x2erp.com/qdy/go-base/config"
  7. "git.x2erp.com/qdy/go-base/container"
  8. "git.x2erp.com/qdy/go-base/graceful"
  9. "git.x2erp.com/qdy/go-base/logger"
  10. "git.x2erp.com/qdy/go-base/webx"
  11. _ "git.x2erp.com/qdy/go-svc-mercury/internal/tables" // 导入表定义包,触发 init() 函数
  12. )
  13. var (
  14. appName = "svc-mercury"
  15. appVersion = "1"
  16. )
  17. func main() {
  18. // 0. 初始化日志
  19. logBootFactory := logger.InitBootLog()
  20. // 1. 获取配置文件
  21. cfg := config.GetConfig()
  22. cfg.SetAppName(appName)
  23. cfg.SetAppVersion(appVersion)
  24. // 2. 创建关闭容器
  25. ctr := container.NewContainer(cfg)
  26. // 注册日志,实现自动关闭
  27. container.Reg(ctr, logBootFactory)
  28. // 3. 创建数据库工厂
  29. dbFactory := container.Create(ctr, database.CreateDBFactory)
  30. dbFactory.TestConnection()
  31. // 创建表
  32. creteTabel(dbFactory)
  33. // 同步表定义到配置中心
  34. syncTablesToConfigure(cfg)
  35. //启用运行日志
  36. container.Create(ctr, logger.InitRuntimeLogger)
  37. //建立httpservice
  38. //得到webservice服务工厂
  39. webxFactory := webx.GetWebServiceFactory()
  40. //建立hhtpService服务
  41. webServcie, _ := webxFactory.CreateService(cfg.GetServiceConfig())
  42. //建立路由-api
  43. //routerService := router.NewWebService(webServcie.GetRouter())
  44. //注册路由--api
  45. //registerRoutes(routerService, dbFactory)
  46. // 注册前端静态文件服务
  47. //frontendHandler := ServeFrontend()
  48. //webServcie.GetRouter().Handle("/", frontendHandler)
  49. //启动服务
  50. webServcie.Run()
  51. //等待关闭
  52. graceful.WaitForShutdown(cfg.GetServiceConfig().ServiceName, ctr, webServcie.GetServer())
  53. }
  54. func creteTabel(factory *database.DBFactory) {
  55. // 获取数据库连接和类型
  56. db := factory.GetDB()
  57. dbType := factory.GetDBType()
  58. // 创建表同步器
  59. syncer, err := sqldef.NewTableSyncer(db, dbType)
  60. if err != nil {
  61. log.Printf("创建 - 建立器失败: %v", err)
  62. }
  63. // 创建表
  64. if err := syncer.CreateTables(); err != nil {
  65. log.Printf("建表失败: %v", err)
  66. }
  67. log.Println("数据库表建立完成!")
  68. }
  69. func syncTablesToConfigure(cfg config.IConfig) {
  70. }