暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package main
  2. import (
  3. "log"
  4. "net/http"
  5. "git.x2erp.com/qdy/go-base/bootstraps"
  6. "git.x2erp.com/qdy/go-base/middleware"
  7. "git.x2erp.com/qdy/go-db/factory/database"
  8. "git.x2erp.com/qdy/go-db/myhandle"
  9. "git.x2erp.com/qdy/go-db/sqldef"
  10. "go-micro.dev/v4/web"
  11. "git.x2erp.com/qdy/go-svc-configure/service"
  12. _ "git.x2erp.com/qdy/go-svc-configure/tables" // 导入表定义包,触发 init() 函数
  13. )
  14. var (
  15. serviceName = "svc-configure"
  16. serviceVersion = "1"
  17. )
  18. func main() {
  19. // 创建服务启动器
  20. bootstrapper := bootstraps.NewServiceBootstrapper(serviceName, serviceVersion)
  21. //加载配置
  22. bootstrapper.InitConfig()
  23. //构建数据库工厂
  24. bootstrapper.InitDatabase()
  25. //创建表到数据库
  26. creteTabel(bootstrapper.DbFactory)
  27. // 启动服务,传入路由注册函数
  28. bootstrapper.Run(registerRoutes)
  29. }
  30. // 注册所有路由
  31. func registerRoutes(webService web.Service, dbFactory *database.DBFactory) {
  32. // 查询yaml配置文件
  33. webService.Handle("/api/query/yaml", middleware.JWTAuthMiddleware(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  34. myhandle.QueryHandlerMap(w, r, dbFactory, service.QueryYamlConfigure)
  35. })))
  36. // 初始化配置模版
  37. webService.Handle("/api/init/config/template", middleware.JWTAuthMiddleware(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  38. myhandle.QueryHandlerMap(w, r, dbFactory, service.InitConfigTemplates)
  39. })))
  40. }
  41. func creteTabel(factory *database.DBFactory) {
  42. // 获取数据库连接和类型
  43. db := factory.GetDB()
  44. dbType := factory.GetDBType()
  45. // 创建表同步器
  46. syncer, err := sqldef.NewTableSyncer(db, dbType)
  47. if err != nil {
  48. log.Printf("创建 - 建立器失败: %v", err)
  49. }
  50. // 创建表
  51. if err := syncer.CreateTables(); err != nil {
  52. log.Printf("建表失败: %v", err)
  53. }
  54. log.Println("数据库表建立完成!")
  55. }